[FFmpeg-user] Is FFV1 able to encode interlaced video?

Andy Furniss adf.lists at gmail.com
Mon Aug 10 12:08:03 CEST 2015


Paul B Mahol wrote:
> On 8/10/15, Andy Furniss <adf.lists at gmail.com> wrote:
>> Carl Eugen Hoyos wrote:
>>
>>> Please understand that there is a difference between interlaced
>>> content and interlaced encoding. There is no interlaced encoding with
>>> FFv1 because it appears not to save any bytes in the output file and
>>> if you have interlaced content it will be still be interlaced.
>>
>> But judging by one quick test I just did, you will loose the field order
>> information and the frames are marked as progressive.
>>
>> Tested with mkv and nut with ffprobe -show_frames.
>>
>> Input is y4m ffprobe shows -
>>
>> interlaced_frame=1
>> top_field_first=1
>>
>> both are 0 on resulting files.
>
> That is for older version, latest version keep interlaced flags.

I think I am up to date - direct paste (ffm and ffpr are bash aliases I 
use to run from git tree)

ph4[576i25]$ ffm -i parkrun-576i25-420-704.y4m -c:v ffv1 out-ffv1.mkv
ffmpeg version N-74340-ge66a43f Copyright (c) 2000-2015 the FFmpeg 
developers
   built with gcc 4.9.2 (GCC)
   configuration: --prefix=/usr --disable-doc --enable-gpl 
--enable-nonfree --enable-opencl --enable-libvpx 
--enable-libschroedinger --enable-libx265 --enable-libdcadec 
--enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-x11grab
   libavutil      54. 30.100 / 54. 30.100
   libavcodec     56. 57.100 / 56. 57.100
   libavformat    56. 40.101 / 56. 40.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 32.100 /  5. 32.100
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  2.101 /  1.  2.101
   libpostproc    53.  3.100 / 53.  3.100
Input #0, yuv4mpegpipe, from 'parkrun-576i25-420-704.y4m':
   Duration: 00:00:10.08, start: 0.000000, bitrate: 121652 kb/s
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 704x576, 
SAR 16:11 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'out-ffv1.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'out-ffv1.mkv':
   Metadata:
     encoder         : Lavf56.40.101
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv420p, 704x576 [SAR 
16:11 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 1k tbn, 25 tbc
     Metadata:
       encoder         : Lavc56.57.100 ffv1
Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> ffv1 (native))
Press [q] to stop, [?] for help
frame=  252 fps= 50 q=-0.0 Lsize=   91607kB time=00:00:10.08 
bitrate=74449.2kbits/s
video:91604kB audio:0kB subtitle:0kB other streams:0kB global 
headers:0kB muxing overhead: 0.003707%
ph4[576i25]$ ffpr -show_frames out-ffv1.mkv | head -n 30
ffprobe version N-74340-ge66a43f Copyright (c) 2007-2015 the FFmpeg 
developers
   built with gcc 4.9.2 (GCC)
   configuration: --prefix=/usr --disable-doc --enable-gpl 
--enable-nonfree --enable-opencl --enable-libvpx 
--enable-libschroedinger --enable-libx265 --enable-libdcadec 
--enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-x11grab
   libavutil      54. 30.100 / 54. 30.100
   libavcodec     56. 57.100 / 56. 57.100
   libavformat    56. 40.101 / 56. 40.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 32.100 /  5. 32.100
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  2.101 /  1.  2.101
   libpostproc    53.  3.100 / 53.  3.100
Input #0, matroska,webm, from 'out-ffv1.mkv':
   Metadata:
     ENCODER         : Lavf56.40.101
   Duration: 00:00:10.08, start: 0.000000, bitrate: 74449 kb/s
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv420p, 704x576, SAR 
16:11 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
     Metadata:
       ENCODER         : Lavc56.57.100 ffv1
       DURATION        : 00:00:10.080000000
[FRAME]
media_type=video
stream_index=0
key_frame=1
pkt_pts=0
pkt_pts_time=0.000000
pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
pkt_duration=40
pkt_duration_time=0.040000
pkt_pos=719
pkt_size=164299
width=704
height=576
pix_fmt=yuv420p
sample_aspect_ratio=16:11
pict_type=I
coded_picture_number=0
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
[/FRAME]
[FRAME]
media_type=video
stream_index=0
key_frame=0
pkt_pts=40
ph4[576i25]$
ph4[576i25]$
ph4[576i25]$ ffpr -show_frames parkrun-576i25-420-704.y4m | head -n 30
ffprobe version N-74340-ge66a43f Copyright (c) 2007-2015 the FFmpeg 
developers
   built with gcc 4.9.2 (GCC)
   configuration: --prefix=/usr --disable-doc --enable-gpl 
--enable-nonfree --enable-opencl --enable-libvpx 
--enable-libschroedinger --enable-libx265 --enable-libdcadec 
--enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-x11grab
   libavutil      54. 30.100 / 54. 30.100
   libavcodec     56. 57.100 / 56. 57.100
   libavformat    56. 40.101 / 56. 40.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 32.100 /  5. 32.100
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  2.101 /  1.  2.101
   libpostproc    53.  3.100 / 53.  3.100
Input #0, yuv4mpegpipe, from 'parkrun-576i25-420-704.y4m':
   Duration: 00:00:10.08, start: 0.000000, bitrate: 121652 kb/s
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 704x576, 
SAR 16:11 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 25 tbc
[FRAME]
media_type=video
stream_index=0
key_frame=1
pkt_pts=0
pkt_pts_time=0.000000
pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
pkt_duration=1
pkt_duration_time=0.040000
pkt_pos=66
pkt_size=608256
width=704
height=576
pix_fmt=yuv420p
sample_aspect_ratio=16:11
pict_type=I
coded_picture_number=0
display_picture_number=0
interlaced_frame=1
top_field_first=1
repeat_pict=0
[/FRAME]
[FRAME]
media_type=video
stream_index=0
key_frame=1
pkt_pts=1




More information about the ffmpeg-user mailing list