Opened 12 years ago
Closed 12 years ago
#1808 closed enhancement (invalid)
Auto add yadif/format filter when needed
Reported by: | burek | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | undetermined |
Version: | unspecified | Keywords: | |
Cc: | ld | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
A guy on #ffmpeg channel (L) tried to re-encode his media, using:
ffmpeg -i /media/hd/home-videos/raw/test.avi -crf 18 -c:v libx264 -preset veryslow -c:a flac output.mkv ffmpeg version 1.0 Copyright (c) 2000-2012 the FFmpeg developers built on Sep 29 2012 11:22:50 with gcc 4.7.1 (GCC) 20120721 (prerelease) configuration: --prefix=/usr --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libvpx --enable-libtheora --enable-libgsm --enable-libspeex --enable-postproc --enable-shared --enable-x11grab --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libschroedinger --enable-libopenjpeg --enable-librtmp --enable-libpulse --enable-libv4l2 --enable-gpl --enable-version3 --enable-runtime-cpudetect --disable-debug --disable-static libavutil 51. 73.101 / 51. 73.101 libavcodec 54. 59.100 / 54. 59.100 libavformat 54. 29.104 / 54. 29.104 libavdevice 54. 2.101 / 54. 2.101 libavfilter 3. 17.100 / 3. 17.100 libswscale 2. 1.101 / 2. 1.101 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [avi @ 0x1944240] non-interleaved AVI [avi @ 0x1944240] Could not find codec parameters for stream 0 (Video: none (422P / 0x50323234), 704x464): unknown codec Consider increasing the value for the 'analyzeduration' and 'probesize' options Guessed Channel Layout for Input Stream #0.1 : stereo Input #0, avi, from '/media/hd/home-videos/raw/test.avi': Metadata: encoder : MEncoder SVN-r35014-4.7.1 Duration: 01:03:09.55, start: 0.000000, bitrate: 158157 kb/s Stream #0:0: Video: none (422P / 0x50323234), 704x464, SAR 59392:59389 DAR 8192:5399, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s File 'output.mkv' already exists. Overwrite ? [y/N] Unable to parse option value "-1" as pixel format Error opening filters!
After the suggestion to add "-filter:v yadif=1,format=yuv420p" everything worked. Here is a log of it:
<L> in other words, is there a good compressed format viable for archival purposes? <L> good meaning produces high quality with relatively low size <L> mutt <L> whoops, that was supposed to be for zsh <R> L: yes, I would use ffmpeg -i input -c:v libx264 -preset veryslow -c:a flac output.mkv <R> er, add -crf 18 after the input <R> that will give you highly compressed (lossy) video and lossless audio <L> R: darn, i get "Unable to parse option value "-1" as pixel format <R> pastie.org your command and all output <L> R: http://pastie.org/5045110 <R> is it interlaced? <L> i believe it is <L> i didn't not explicitely deinterlace it <R> you should, hold on a second <R> ffmpeg -i input -filter:v yadif:1,format=yuv420p -c:v libx264 -crf 18 -c:a flac output.mkv <R> L: what is the output fps from the command? <L> 29.97 <L> i get this tho: No such filter: 'yadif:1' <R> change it to yadif=1 <R> that should double the framerate of the input. <L> R: getting somewhere now. must figure out how to set ntsc for v4l2 options <L> ah, -standard <L> R: damn, that quality is epic.
So, the question. Can it be implemented in such a way that ffmpeg doesn't just say "Could not find codec parameters", but rather to try to deinterlace it or something, because I believe a lot of ordinary users won't be able to figure out to just add "-filter:v yadif=1,format=yuv420p" out of the blue, without any suggestion either from ffmpeg binary or from reading the docs (which they never do) :)
Change History (5)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
The link to test.avi is here.
https://s3.amazonaws.com/testavi/test.avi
comment:3 by , 12 years ago
Cc: | added |
---|
Thank you for the sample!
Is the video in the file supposed to be solid red?
Which software produced the video?
comment:4 by , 12 years ago
ld here, something was funny with my account and i couldn't log in.
anyways, the video does not show up as solid red here with mplayer. It flashes black then blue.
The software I used was mencoder and v4l2. I do not have the exact command at the moment, though.
comment:5 by , 12 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Sorry for not reacting earlier.
I have three comments regarding this issue:
The title asks for automatic insertion of the yadif filter. This would be a highly welcome feature but I don't see how it could be achieved: Most DVB streams I know (these are the streams that would profit most from the feature since in Europe most tv stations still send the live recorded / sport material interlaced) signal "interlaced" no matter if the content is actually interlaced or was originally recorded at 24/25fps (movies) and shows no interlacing artefacts whatsoever.
The original report above claims that an input file could not be read with "ffmpeg -i file" but could be read with "ffmpeg -i file -vf xxx". This is simply impossible / would be a very serious bug (but there is no indication this was the case).
For me it was interesting that a file with a "new", unknown fourcc was provided as input to ffmpeg - we try hard to support strange formats even if they appear broken in some way. But this has limits and files produced with MEncoder by the reporter do not fall into this category imo.
(You can choose any fourcc for any material with both MEncoder and ffmpeg but that does not make the resulting file useful.)
Please note that MEncoder does not support remuxing the raw input from tv:// the way you tried, it does support (very well) reencoding v4l input using lavc or another encoder.
Please provide the input file test.avi.