Opened 9 years ago

Closed 9 years ago

#9199 closed defect (Fixed)

Non default options cause fatal errors

Reported by: Bedlore <bedlore@…> Owned by: beirdo
Priority: minor Milestone: 0.25
Component: Apps - Nuvexport Version: 0.23.1
Severity: high Keywords:
Cc: Ticket locked: no

Description

Several bugs effecting use on Debian

Custom height & width all other options default (xdiv).

START WIDTH / HEIGHT BUG

Specifying non-default heights throws this error:

Input #0, rawvideo, from '/tmp/fifodir_9303/vidout':

Duration: N/A, start: 0.000000, bitrate: N/A

Stream #0.0: Video: rawvideo, yuv420p, 720x576, 25 tbr, 25 tbn, 25 tbc

-crop* is deprecated in favor of the crop avfilter -crop* is deprecated in favor of the crop avfilter -crop* is deprecated in favor of the crop avfilter -crop* is deprecated in favor of the crop avfilter Option 'padtop' has been removed, use the pad filter instead ffmpeg: failed to set value '86' for option 'padtop'

: possible solution: http://roundup.ffmpeg.org/issue1931


To encode: Humf: Uncle Hairy's Keys Use the following commands: First pass...

system call: mkdir -m 0755 /tmp/fifodir_8865/

forking: /usr/bin/nice -n19 /usr/bin/mythtranscode --showprogress -p '0' -c '1022' -s '2010-11-05T15:52:00' -f "/tmp/fifodir_8865/" --honorcutlist --fifosync

forking: cat /tmp/fifodir_8865/audout > /dev/null

forking: /usr/bin/nice -n19 ffmpeg -threads 2 -y -f s16le -ar 48000 -ac 2 -f rawvideo -pix_fmt yuv420p -s 720x576 -vf aspect=1.77777777777778 -r 25.000 -i /tmp/fifodir_8865/vidout -vf aspect=1.77777777777778 -r 25.000 -deinterlace -croptop 8 -cropright 10 -cropbottom 8 -cropleft 10 -vf pad 712:400:4:4 -s 712x400 -vcodec libxvid -b '768k' -minrate '32k' -maxrate '1536k' -bt '32k' -bufsize 65535 -flags +mv4+loop+aic+cgop -trellis 1 -mbd 1 -cmp 2 -subcmp 2 -b_qfactor '150' -b_qoffset '100' -bf '1' -pass 1 -passlogfile '/tmp/xvid.8865.log' -f avi /dev/null Final pass...

system call: mkdir -m 0755 /tmp/fifodir_8865/

forking: /usr/bin/nice -n19 /usr/bin/mythtranscode --showprogress -p '0' -c '1022' -s '2010-11-05T15:52:00' -f "/tmp/fifodir_8865/" --honorcutlist

forking: /usr/bin/nice -n19 ffmpeg -threads 2 -y -f s16le -ar 48000 -ac 2 -i /tmp/fifodir_8865/audout -f rawvideo -pix_fmt yuv420p -s 720x576 -vf aspect=1.77777777777778 -r 25.000 -i /tmp/fifodir_8865/vidout -vf aspect=1.77777777777778 -r 25.000 -deinterlace -croptop 8 -cropright 10 -cropbottom 8 -cropleft 10 -vf pad 712:400:4:4 -s 712x400 -vcodec libxvid -b '768k' -minrate '32k' -maxrate '1536k' -bt '32k' -bufsize 65535 -flags +mv4+loop+aic+cgop -trellis 1 -mbd 1 -cmp 2 -subcmp 2 -b_qfactor '150' -b_qoffset '100' -bf '1' -pass 2 -passlogfile '/tmp/xvid.8865.log' -acodec libmp3lame -async 1 -ab '128k' -f avi './Humf - Uncle Hairy'\s Keys.avi'

Cleaning up temp files.

END WIDTH / HEIGHT BUG

Denoise selected all other options default (xdiv).

START DENOISE

Selecting denoise throws this error: Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 243, <STDIN> line 15.

-- script debug output --

To encode: Humf: Uncle Hairy's Keys Use the following commands: First pass... Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 243, <STDIN> line 15.

system call: mkdir -m 0755 /tmp/fifodir_8733/

forking: /usr/bin/nice -n19 /usr/bin/mythtranscode --showprogress -p '0' -c '1022' -s '2010-11-05T15:52:00' -f "/tmp/fifodir_8733/" --honorcutlist --fifosync

forking: cat /tmp/fifodir_8733/audout > /dev/null

forking: /usr/bin/nice -n19 ffmpeg -f rawvideo -s 720x576 -r 25.000 -i /tmp/fifodir_8733/vidout -f yuv4mpegpipe - 2> /dev/null | /usr/bin/nice -n19 yuvdenoise -r 16 -f 2> /dev/null | /usr/bin/nice -n19 ffmpeg -threads 2 -y -f s16le -ar 48000 -ac 2 -f yuv4mpegpipe -s 720x576 -vf aspect=1.77777777777778 -r 25.000 -i - -vf aspect=1.77777777777778 -r 25.000 -deinterlace -croptop 8 -cropright 10 -cropbottom 8 -cropleft 10 -s 512x288 -vcodec libxvid -b '768k' -minrate '32k' -maxrate '1536k' -bt '32k' -bufsize 65535 -flags +mv4+loop+aic+cgop -trellis 1 -mbd 1 -cmp 2 -subcmp 2 -b_qfactor '150' -b_qoffset '100' -bf '1' -pass 1 -passlogfile '/tmp/xvid.8733.log' -f avi /dev/null Final pass... Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 243, <STDIN> line 15.

system call: mkdir -m 0755 /tmp/fifodir_8733/

forking: /usr/bin/nice -n19 /usr/bin/mythtranscode --showprogress -p '0' -c '1022' -s '2010-11-05T15:52:00' -f "/tmp/fifodir_8733/" --honorcutlist

forking: /usr/bin/nice -n19 ffmpeg -f rawvideo -s 720x576 -r 25.000 -i /tmp/fifodir_8733/vidout -f yuv4mpegpipe - 2> /dev/null | /usr/bin/nice -n19 yuvdenoise -r 16 -f 2> /dev/null | /usr/bin/nice -n19 ffmpeg -threads 2 -y -f s16le -ar 48000 -ac 2 -i /tmp/fifodir_8733/audout -f yuv4mpegpipe -s 720x576 -vf aspect=1.77777777777778 -r 25.000 -i - -vf aspect=1.77777777777778 -r 25.000 -deinterlace -croptop 8 -cropright 10 -cropbottom 8 -cropleft 10 -s 512x288 -vcodec libxvid -b '768k' -minrate '32k' -maxrate '1536k' -bt '32k' -bufsize 65535 -flags +mv4+loop+aic+cgop -trellis 1 -mbd 1 -cmp 2 -subcmp 2 -b_qfactor '150' -b_qoffset '100' -bf '1' -pass 2 -passlogfile '/tmp/xvid.8733.log' -acodec libmp3lame -async 1 -ab '128k' -f avi './Humf - Uncle Hairy'\s Keys.avi'

Cleaning up temp files.

END DENOISE

Debian ffmpeg version detection, codec support detection issues

Please see attached modified nuvexport version and compare to the latest, the changes were necessary to get nuvexport to work at all on debian. The modified version will successfully complete a run (if no options are changed). Codecs are not all correctly detected either I currently get the following format options.

Using ffmpeg for exporting. What would you like to do?

  1. Export to XviD
  2. Export to DVD
  3. Export to DivX
  4. Export to ASF
  5. Export to MP3
  6. Export to PSP (disabled)
  7. Export to MP4 (iPod) (disabled)
  8. Export to .nuv and .sql
  1. Quit

Choose a function:

FFMPEG VERSION USED

$ ffmpeg --version FFmpeg version SVN-r24504, Copyright (c) 2000-2010 the FFmpeg developers

built on Oct 4 2010 17:31:43 with gcc 4.4.5 configuration: '--enable-libdc1394' --prefix='/usr' --extra-cflags='-Wall -g ' --cc='ccache cc' '--enable-shared' '--enable-libmp3lame' '--enable-gpl' '--enable-libvorbis' '--enable-pthreads' '--enable-libfaac' '--enable-libxvid' '--enable-postproc' '--enable-x11grab' '--enable-libgsm' '--enable-libtheora' '--enable-libopencore-amrnb' '--enable-libopencore-amrwb' '--enable-libx264' '--enable-libspeex' '--enable-nonfree' '--disable-stripping' '--enable-avfilter' '--enable-libdirac' '--enable-avfilter-lavf' --disable-decoder='libdirac' '--enable-libschroedinger' --disable-encoder='libschroedinger' '--enable-version3' '--enable-libopenjpeg' '--enable-libvpx' '--enable-librtmp' --extra-libs='-lgcrypt' '--disable-altivec' '--disable-armv5te' '--disable-armv6' '--disable-vis' libavutil 50.23. 0 / 50.23. 0 libavcore 0. 0. 0 / 0. 0. 0 libavcodec 52.84. 0 / 52.84. 0 libavformat 52.77. 0 / 52.77. 0 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.26. 1 / 1.26. 1 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0

ffmpeg: missing argument for option '-version'

=====

Let me know if you need further details or would like me to test anything.

Attachments (1)

ffmpeg.pm.modified (20.9 KB) - added by Bedlore <bedlore@…> 9 years ago.
modified nuvexport version to work with Debian

Download all attachments as: .zip

Change History (14)

Changed 9 years ago by Bedlore <bedlore@…>

Attachment: ffmpeg.pm.modified added

modified nuvexport version to work with Debian

comment:1 Changed 9 years ago by beirdo

Owner: changed from xris to beirdo
Status: newassigned

comment:2 Changed 9 years ago by Christian Marillat <marillat@…>

Added notification

comment:3 Changed 9 years ago by beirdo

Status: assignedinfoneeded

Could you get me the version number of yuvdenoise, please?

comment:4 Changed 9 years ago by Bedlore <bedlore@…>

$ yuvdenoise -v

INFO: [yuvdenoise] yuvdenoise version 1.9.0 INFO: [yuvdenoise] Using the following thresholds/settings: INFO: [yuvdenoise] Gauss-Pre-Filter [Y,U,V] : [0,0,0] INFO: [yuvdenoise] Median-Pre-Filter [Y,U,V] : [0,0,0] INFO: [yuvdenoise] Temporal-Noise-Filter [Y,U,V] : [0,0,0] INFO: [yuvdenoise] Median-Post-Filter [Y,U,V] : [0,0,0] INFO: [yuvdenoise] Renoise [Y,U,V] : [0,0,0] INFO: [yuvdenoise] HQ-Mode : off

ERROR: [yuvdenoise] Couldn't read YUV4MPEG header: bad header magic!

Also a ffmpeg update came through today..

$ ffmpeg --version FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers

built on Nov 15 2010 11:39:17 with gcc 4.4.5 configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac --enable-avfilter-lavf --disable-decoder=libdirac --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec --disable-armv5te --disable-armv6 --disable-vis libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.19. 0 / 1.19. 0 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0

ffmpeg: missing argument for option '-version'

comment:5 Changed 9 years ago by beirdo

Status: infoneededassigned

First off... the yuvdenoise issue. I can not recreate that here. Granted I have an older version of ffmpeg, but the identical version of yuvdenoise.

Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 243, <STDIN> line 15.

This is not an error, this is a warning. It is where it is trying to compare the version of yuvdenoise, but somehow it is not working on your system.

Secondly, the "codec detection" is a non-bug. If you try using the two disabled options, it will tell you what is missing on your system. Judging by the two listed, your ffmpeg does not support writing aac audio. A known issue that you get by using Debian.

That leaves us with only one "bug". That is that ffmpeg once AGAIN changed its command line in a newer revision. I so hate their inconsistancy. I'll ponder on this, and what to do to fix it.

comment:6 in reply to:  5 ; Changed 9 years ago by Christian Marillat <marillat@…>

Replying to beirdo:

This is not an error, this is a warning. It is where it is trying to compare the version of yuvdenoise, but somehow it is not working on your system.

yuvdenoise is waiting for datas. You may try to use the -h flags to have something more readable.

Secondly, the "codec detection" is a non-bug. If you try using the two disabled options, it will tell you what is missing on your system. Judging by the two listed, your ffmpeg does not support writing aac audio. A known issue that you get by using Debian.

This ffmpeg package come from the debian-multimedia.org repository. This package has been build with all options enabled :

$ ffmpeg -codecs | grep -i aac

DEA aac Advanced Audio Coding
EA libfaac libfaac AAC (Advanced Audio Codec)

That leaves us with only one "bug". That is that ffmpeg once AGAIN changed its command line in a newer revision. I so hate their inconsistancy. I'll ponder on this, and what to do to fix it.

ffmpeg 0.6.1 is the current stable release. I think you must support stable release.

Christian

comment:7 in reply to:  6 ; Changed 9 years ago by beirdo

Replying to Christian Marillat <marillat@…>:

Replying to beirdo:

This is not an error, this is a warning. It is where it is trying to compare the version of yuvdenoise, but somehow it is not working on your system.

yuvdenoise is waiting for datas. You may try to use the -h flags to have something more readable.

What was reported as a bug was not in fact a bug. If it's stuck waiting for data, it's likely because ffmpeg is being screwy, once again.

This ffmpeg package come from the debian-multimedia.org repository. This package has been build with all options enabled :

$ ffmpeg -codecs | grep -i aac

DEA aac Advanced Audio Coding
EA libfaac libfaac AAC (Advanced Audio Codec)

As you are not the original poster, you can not speak to what his copy of nuvexport would say if he chose the disabled options. I said aac in particular as this is a common issue that happens with license-crippled versions of ffmpeg. But to find out the actual issue, the user needs to go into nuvexport and see what was being detected as missing.

That leaves us with only one "bug". That is that ffmpeg once AGAIN changed its command line in a newer revision. I so hate their inconsistancy. I'll ponder on this, and what to do to fix it.

ffmpeg 0.6.1 is the current stable release. I think you must support stable release.

There is no requirement that we "must" support any release at all. ffmpeg is notorious for jerking their users around by changing the command line arguments repeatedly and for no apparent good reason.

Anyways, I await feedback from the original poster on the matter of the disabled codecs, but I still need to decide on how to proceed with this. I'm tired of endlessly tweaking ffmpeg command lines.

comment:8 in reply to:  7 Changed 9 years ago by Christian Marillat <marillat@…>

Replying to beirdo:

Replying to Christian Marillat <marillat@…>:

Replying to beirdo:

This is not an error, this is a warning. It is where it is trying to compare the version of yuvdenoise, but somehow it is not working on your system.

yuvdenoise is waiting for datas. You may try to use the -h flags to have something more readable.

What was reported as a bug was not in fact a bug. If it's stuck waiting for data, it's likely because ffmpeg is being screwy, once again.

Do you have noticed that yuvdenoise isn't ffmpeg ?

As I'm saying in my previous comment use the -h option with yuvdenoise.

As you are not the original poster, you can not speak to what his copy of nuvexport would say if he chose the disabled options. I said aac in particular as this is a common issue that happens with license-crippled versions of ffmpeg. But to find out the actual issue, the user needs to go into nuvexport and see what was being detected as missing.

Read again my previous reply. This ffmpeg package has been compiled by me, so I know what I'm talking about. This ffmpeg version has been build with all options included non-free codecs.

ffmpeg 0.6.1 is the current stable release. I think you must support stable release.

There is no requirement that we "must" support any release at all. ffmpeg is notorious for jerking their users around by changing the command line arguments repeatedly and for no apparent good reason.

You need to take the decision which version of ffmpeg should work with nuvexport.

comment:9 Changed 9 years ago by beirdo

Status: assignedinfoneeded

This ticket is awaiting input from the original poster on what nuvexport says it is missing when he attempts to use the disabled exporters. If you can not provide that precise information, you are not adding salient information to this ticket.

comment:10 Changed 9 years ago by beirdo

Also, for the original poster:

Please uncomment all the stuff you commented in your ffmpeg.pm file you posted. That stuff is there for a reason, and your commenting it out is, in fact, what may be causing your issues with yuvdenoise. I will not accept that as a change to be committed, so please help debugging by using the actual code being supported. Thanks.

comment:11 Changed 9 years ago by anonymous

Hi, as mentioned earlier the stable ffmpeg 0.6.1 is now on my system, is it okay if I continue this bug from there. ffmpeg are been very unhelpful changing their flags so frequently, I hope it doesn't deter you, nuvexport is the only viable script I know of to handle mass myth exports easily.

I've uncommented as suggested and now get:

bedlore@wave-master:~[2010-11-16 23:39:31]$ nuvexport --debug Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 104. Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 104. Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 104. Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 104. Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 104. Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 104. Use of uninitialized value in numeric lt (<) at /usr/share/nuvexport/export/ffmpeg.pm line 104.

Loading MythTV recording info. 97%

Using ffmpeg for exporting. What would you like to do?

  1. Export to XviD (disabled)
  2. Export to DVD (disabled)
  3. Export to DivX (disabled)
  4. Export to ASF (disabled)
  5. Export to MP3 (disabled)
  6. Export to PSP (disabled)
  7. Export to MP4 (iPod) (disabled)
  8. Export to .nuv and .sql
  1. Quit

comment:12 Changed 9 years ago by beirdo

I plan on making this all work by building an ffmpeg binary as part of the mythtv install. We have a snapshot of their code anyways, it's just a little more work to get the binary built. This way we have a well-controlled version that will be the same across all distros, and will support exactly what mythtv supports as it will use our snapshotted libraries (shared).

This will take me a bit of time, but this is the plan. At that point I will have one set of command line arguments to support, and it will only change when we re-snapshot ffmpeg.

comment:13 Changed 9 years ago by beirdo

Milestone: unknown0.25
Resolution: Fixed
Status: infoneededclosed

Fixed in MythTV/nuvexport@c18508f2044

nuvexport now uses the mythffmpeg built from the ffmpeg synced in MythTV's codebase. No other ffmpeg will any longer be supported.

Note, that to get full support, you may need to configure MythTV with: --enable-libmp3lame --enable-libxvid --enable-libx264

Note: See TracTickets for help on using tickets.