Attached are two files to be replaced in the lavtools directory of version 2.0.0 of the mjpegtools. These two files add an option called --software-encoding-yuvp which in turn does a software YUV422P implementation
I did a diff to the current CVS. And the patch looks good. If everything goes well I do some tests (with zoran chipset based cards) next wekend and put it than to the CVS.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks. I'll be looking forward to seeing it in a release eventually :)
One comment people using this might find very usefull: The EM28XX kernel driver exports 48KHz/16 bit audio. Using any different kind of frequency (especially the lower ones) will cause an awfull lot of deleted and inserted frames, and will cause audio and video to get out of sync. Recording on 48KHz prevents this problem from occurring.
-c 2 is a requirement. Not specifying this will ensure your recording breaks after roughly 1 min, 20 seconds.
I did not try recording mono audio so i cant say whether this matters or not.
Lastly, but this might be the speed of my laptop harddisk: Recording at -q 100 causes still some deleted/inserted frames. Recording at -q 80 solved this issue for me, but your mileage may vary.
Hopefully this prevents anyone else trying this from finding out the hard way.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can you please post some text for the manpage of lavrec, explaining the option. And for what card/chipset it it can be used, And also important where it won't work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
--software-encoding-yuvp
This option adds support for the EM28XX USB driver. As this driver is V4L2. As the original BTTV
software implementation assumes that the driver supports V4L it will not work with the EM28XX
driver, not even with the V4L1 emulation layer. This option enables two things:
1) It enables the V4L2 calls to make interaction with this driver possible
2) It select the cards YUV Packed format and converts this in software to YUV Planar
The process is after this the same as for the BTTV driver.
Some things of note are the fact that the EM28XX driver expects 48KHz audio recording. If you
choose slower things will work, but a lot of deleted/inserted frames will occur. The lower the
sample rate, the worse this problem gets. Recording at 48KHz is therefore recommended.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Forgot to add:
This code was tested and found working with a DVC100 Pinnacle Dazzle. This option should work with any EM28XX, but this hasnt been tested. It might work for any other V4L2 device that outputs YUV packed format, this has however not been tested.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have uploaded the changes to the CVS. The option will appear in the next release of the mjpegtools.
The format of the manpage lookes a bit different but that shouldn't matter. I will post a note of the change to the mjpeg-users mailing list and change the mjpeg homepage.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Added performance_patch. This is needed when trying to capture full res PAL 704x576 movies, as stripes are appearing on the screen. With this patch the stripes are lessened but not gone. It seems to be caused by the encoding thread as far as I can find. Likely the software implementation costs too much time. If i take away the extra memcpy before doing the YUV packed -> YUV planar conversion the stripes get worse. Increasing num_procs makes it worse too.
Any suggestions?
Rogier
Any suggestions on fixing this issue?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have updated the CVS so the patch is safe. I have no idea about the problem. I will post a mail to the mjpeg-users mailing list, maybe somebody has a idea how to fix that problem.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I did some testing with this, and it works fine with my Pinnacle DVC100.
I did a diff to the current CVS. And the patch looks good. If everything goes well I do some tests (with zoran chipset based cards) next wekend and put it than to the CVS.
Thanks. I'll be looking forward to seeing it in a release eventually :)
One comment people using this might find very usefull: The EM28XX kernel driver exports 48KHz/16 bit audio. Using any different kind of frequency (especially the lower ones) will cause an awfull lot of deleted and inserted frames, and will cause audio and video to get out of sync. Recording on 48KHz prevents this problem from occurring.
-c 2 is a requirement. Not specifying this will ensure your recording breaks after roughly 1 min, 20 seconds.
I did not try recording mono audio so i cant say whether this matters or not.
Lastly, but this might be the speed of my laptop harddisk: Recording at -q 100 causes still some deleted/inserted frames. Recording at -q 80 solved this issue for me, but your mileage may vary.
Hopefully this prevents anyone else trying this from finding out the hard way.
Can you please post some text for the manpage of lavrec, explaining the option. And for what card/chipset it it can be used, And also important where it won't work.
Will this do?
--software-encoding-yuvp
This option adds support for the EM28XX USB driver. As this driver is V4L2. As the original BTTV
software implementation assumes that the driver supports V4L it will not work with the EM28XX
driver, not even with the V4L1 emulation layer. This option enables two things:
1) It enables the V4L2 calls to make interaction with this driver possible
2) It select the cards YUV Packed format and converts this in software to YUV Planar
Forgot to add:
This code was tested and found working with a DVC100 Pinnacle Dazzle. This option should work with any EM28XX, but this hasnt been tested. It might work for any other V4L2 device that outputs YUV packed format, this has however not been tested.
I have uploaded the changes to the CVS. The option will appear in the next release of the mjpegtools.
The format of the manpage lookes a bit different but that shouldn't matter. I will post a note of the change to the mjpeg-users mailing list and change the mjpeg homepage.
Thanks. I'll see if I can modify it more in the coming weeks so it uses V4L2 only. That should support more cards
Hi,
Added performance_patch. This is needed when trying to capture full res PAL 704x576 movies, as stripes are appearing on the screen. With this patch the stripes are lessened but not gone. It seems to be caused by the encoding thread as far as I can find. Likely the software implementation costs too much time. If i take away the extra memcpy before doing the YUV packed -> YUV planar conversion the stripes get worse. Increasing num_procs makes it worse too.
Any suggestions?
Rogier
Any suggestions on fixing this issue?
I hope you know the concept of holidays.
I have updated the CVS so the patch is safe. I have no idea about the problem. I will post a mail to the mjpeg-users mailing list, maybe somebody has a idea how to fix that problem.