[FFmpeg-user] setfield and display order and storage order
dave at dericed.com
dave at dericed.com
Mon Nov 28 21:48:33 EET 2016
Hi all,
I'm trying to use the setfield filter to get an output that is stored and display as top field first. However the output of setfield with bff and tff always seems to have a conflict between storage and display.
For examples, using mandelbrot, tinterlace, and setfield to make a tff output.
ffmpeg -f lavfi -i mandelbrot=s=720x288:r=50/1 -vf tinterlace=merge,setfield=tff -t 1 -c:v v210 -y interlaced.mov
ffmpeg version N-43913-g801b5c1 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-801b5c1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-libfreetype --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
libavutil 55. 41.101 / 55. 41.101
libavcodec 57. 66.108 / 57. 66.108
libavformat 57. 58.101 / 57. 58.101
libavdevice 57. 2.100 / 57. 2.100
libavfilter 6. 67.100 / 6. 67.100
libavresample 3. 2. 0 / 3. 2. 0
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
Input #0, lavfi, from 'mandelbrot=s=720x288:r=50/1':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (RGB[0] / 0x424752), rgb0, 720x288 [SAR 1:1 DAR 5:2], 50 tbr, 50 tbn, 50 tbc
Output #0, mov, to 'interlaced.mov':
Metadata:
encoder : Lavf57.58.101
Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p, 720x576 [SAR 2:1 DAR 5:2], q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc57.66.108 v210
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> v210 (native))
Press [q] to stop, [?] for help
frame= 25 fps=0.0 q=-0.0 Lsize= 27001kB time=00:00:00.96 bitrate=230388.8kbits/s speed=2.49x
video:27000kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.003277%
But the output is:
ffmpeg -i interlaced.mov
ffmpeg version N-43913-g801b5c1 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-801b5c1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-libfreetype --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
libavutil 55. 41.101 / 55. 41.101
libavcodec 57. 66.108 / 57. 66.108
libavformat 57. 58.101 / 57. 58.101
libavdevice 57. 2.100 / 57. 2.100
libavfilter 6. 67.100 / 6. 67.100
libavresample 3. 2. 0 / 3. 2. 0
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'interlaced.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf57.58.101
Duration: 00:00:01.00, start: 0.000000, bitrate: 221191 kb/s
Stream #0:0(eng): Video: v210 (v210 / 0x30313276), yuv422p10le(top coded first (swapped)), 720x576, 221184 kb/s, SAR 2:1 DAR 5:2, 25 fps, 25 tbr, 12800 tbn, 12800 tbc (default)
Metadata:
handler_name : DataHandler
encoder : Lavc57.66.108 v210
At least one output file must be specified
So the result is "top coded first (swapped)" aka "AV_FIELD_TB". Is this expected and is it possible to use the setfield filter (or another filter or argument) to get an output with AV_FIELD_TT? I get the same issue with mkv.
Best Regards,
Dave Rice
More information about the ffmpeg-user
mailing list