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

Paul B Mahol onemda at gmail.com
Mon Aug 10 12:21:52 CEST 2015


On 8/10/15, Andy Furniss <adf.lists at gmail.com> wrote:
> 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)

I was talking about ffv1 encoded bitstream version.

>
> 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
>
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>


More information about the ffmpeg-user mailing list