#1534(undetermined:new): report on ffv1 version and slices
#1534: report on ffv1 version and slices -------------------------------------+------------------------------------- Reporter: dericed | Type: Status: new | enhancement Component: | Priority: normal undetermined | Version: Keywords: | unspecified Blocking: | Blocked By: Analyzed by developer: 0 | Reproduced by developer: 0 -------------------------------------+------------------------------------- Summary of the bug: Since ffv1 version 3 may someday become the default there should be a way to identify whether an ffv1 encoding is version 1, or 3 (or 0). Currently the version isn't reported either during encoding or with ffprobe -show_streams. How to reproduce: Produce ffv1 encodings with version 1 and version 3. Version 1: {{{ ffmpeg started on 2012-07-14 at 07:46:55 Report written to "ffmpeg-20120714-074655.log" Command line: ffmpeg -report -f lavfi -t 1 -i testsrc -c:v ffv1 ffv1_v1.mov ffmpeg version 0.11.1.git Copyright (c) 2000-2012 the FFmpeg developers built on Jul 13 2012 22:09:29 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable- libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable- libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --enable- libopenjpeg libavutil 51. 64.100 / 51. 64.100 libavcodec 54. 37.100 / 54. 37.100 libavformat 54. 16.104 / 54. 16.104 libavdevice 54. 1.100 / 54. 1.100 libavfilter 3. 2.100 / 3. 2.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [Parsed_testsrc_0 @ 0x7f8893c184a0] size:320x240 rate:25/1 duration:-1.000000 sar:1/1 [lavfi @ 0x7f889404e200] All info found [lavfi @ 0x7f889404e200] Estimating duration from bitrate, this may be inaccurate Input #0, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0, 1, 1/25: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc -t is not an input option, keeping it for the next output; consider fixing your command line. [buffer @ 0x7f8893c19aa0] Setting entry with key 'video_size' to value '320x240' [buffer @ 0x7f8893c19aa0] Setting entry with key 'pix_fmt' to value '2' [buffer @ 0x7f8893c19aa0] Setting entry with key 'time_base' to value '1/25' [buffer @ 0x7f8893c19aa0] Setting entry with key 'pixel_aspect' to value '1/1' [buffer @ 0x7f8893c19aa0] Setting entry with key 'sws_param' to value 'flags=2' [buffer @ 0x7f8893c19aa0] Setting entry with key 'frame_rate' to value '25/1' [graph 0 input from stream 0:0 @ 0x7f8893c19b60] w:320 h:240 pixfmt:rgb24 tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2 [format @ 0x7f8893c1a1e0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format' [auto-inserted scaler 0 @ 0x7f8893c1a540] w:320 h:240 fmt:rgb24 sar:1/1 -> w:320 h:240 fmt:bgr0 sar:1/1 flags:0x4 [ffv1 @ 0x7f8894054400] detected 2 logical cores [mov @ 0x7f8894055000] Using MS style video codec tag, the file may be unplayable! Output #0, mov, to 'ffv1_v1.mov': Metadata: encoder : Lavf54.16.104 Stream #0:0, 0, 1/25: Video: ffv1, bgr0, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo -> ffv1) Press [q] to stop, [?] for help No more output streams to write to, finishing. frame= 25 fps=0.0 q=0.0 Lsize= 106kB time=00:00:01.00 bitrate= 870.9kbits/s video:105kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.781373% }}} Version 3: {{{ ffmpeg started on 2012-07-14 at 07:46:42 Report written to "ffmpeg-20120714-074642.log" Command line: ffmpeg -report -f lavfi -t 1 -i testsrc -c:v ffv1 -level 3 -strict experimental ffv1_v3.mov ffmpeg version 0.11.1.git Copyright (c) 2000-2012 the FFmpeg developers built on Jul 13 2012 22:09:29 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable- libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable- libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --enable- libopenjpeg libavutil 51. 64.100 / 51. 64.100 libavcodec 54. 37.100 / 54. 37.100 libavformat 54. 16.104 / 54. 16.104 libavdevice 54. 1.100 / 54. 1.100 libavfilter 3. 2.100 / 3. 2.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [Parsed_testsrc_0 @ 0x7fcf41c18520] size:320x240 rate:25/1 duration:-1.000000 sar:1/1 [lavfi @ 0x7fcf4204e200] All info found [lavfi @ 0x7fcf4204e200] Estimating duration from bitrate, this may be inaccurate Input #0, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0, 1, 1/25: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc -t is not an input option, keeping it for the next output; consider fixing your command line. [buffer @ 0x7fcf41c19c00] Setting entry with key 'video_size' to value '320x240' [buffer @ 0x7fcf41c19c00] Setting entry with key 'pix_fmt' to value '2' [buffer @ 0x7fcf41c19c00] Setting entry with key 'time_base' to value '1/25' [buffer @ 0x7fcf41c19c00] Setting entry with key 'pixel_aspect' to value '1/1' [buffer @ 0x7fcf41c19c00] Setting entry with key 'sws_param' to value 'flags=2' [buffer @ 0x7fcf41c19c00] Setting entry with key 'frame_rate' to value '25/1' [graph 0 input from stream 0:0 @ 0x7fcf41c19cc0] w:320 h:240 pixfmt:rgb24 tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2 [format @ 0x7fcf41c1a360] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format' [auto-inserted scaler 0 @ 0x7fcf41c1a6a0] w:320 h:240 fmt:rgb24 sar:1/1 -> w:320 h:240 fmt:bgr0 sar:1/1 flags:0x4 [ffv1 @ 0x7fcf42054400] detected 2 logical cores [mov @ 0x7fcf42055000] Using MS style video codec tag, the file may be unplayable! Output #0, mov, to 'ffv1_v3.mov': Metadata: encoder : Lavf54.16.104 Stream #0:0, 0, 1/25: Video: ffv1, bgr0, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo -> ffv1) Press [q] to stop, [?] for help No more output streams to write to, finishing. frame= 25 fps=0.0 q=0.0 Lsize= 123kB time=00:00:01.00 bitrate=1006.9kbits/s video:122kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.681518% }}} FFprobe -show_streams on version 1: {{{ ffprobe ffv1_v1.mov -show_streams ffprobe version 0.11.1.git Copyright (c) 2007-2012 the FFmpeg developers built on Jul 13 2012 22:09:29 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable- libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable- libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --enable- libopenjpeg libavutil 51. 64.100 / 51. 64.100 libavcodec 54. 37.100 / 54. 37.100 libavformat 54. 16.104 / 54. 16.104 libavdevice 54. 1.100 / 54. 1.100 libavfilter 3. 2.100 / 3. 2.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ffv1_v1.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf54.16.104 Duration: 00:00:01.00, start: 0.000000, bitrate: 870 kb/s Stream #0:0(eng): Video: ffv1 (FFV1 / 0x31564646), bgr0, 320x240, 864 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc Metadata: handler_name : DataHandler [STREAM] index=0 codec_name=ffv1 codec_long_name=FFmpeg video codec #1 profile=unknown codec_type=video codec_time_base=1/25 codec_tag_string=FFV1 codec_tag=0x31564646 width=320 height=240 has_b_frames=0 sample_aspect_ratio=N/A display_aspect_ratio=N/A pix_fmt=bgr0 level=-99 timecode=N/A id=N/A r_frame_rate=25/1 avg_frame_rate=25/1 time_base=1/25 start_time=0.000000 duration=1.000000 bit_rate=864120 nb_frames=25 nb_read_frames=N/A nb_read_packets=N/A TAG:language=eng TAG:handler_name=DataHandler [/STREAM] }}} FFprobe -show_streams on version 3: {{{ ffprobe ffv1_v3.mov -show_streams ffprobe version 0.11.1.git Copyright (c) 2007-2012 the FFmpeg developers built on Jul 13 2012 22:09:29 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable- libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable- libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --enable- libopenjpeg libavutil 51. 64.100 / 51. 64.100 libavcodec 54. 37.100 / 54. 37.100 libavformat 54. 16.104 / 54. 16.104 libavdevice 54. 1.100 / 54. 1.100 libavfilter 3. 2.100 / 3. 2.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ffv1_v3.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf54.16.104 Duration: 00:00:01.00, start: 0.000000, bitrate: 1006 kb/s Stream #0:0(eng): Video: ffv1 (FFV1 / 0x31564646), bgr0, 320x240, 999 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc Metadata: handler_name : DataHandler [STREAM] index=0 codec_name=ffv1 codec_long_name=FFmpeg video codec #1 profile=unknown codec_type=video codec_time_base=1/25 codec_tag_string=FFV1 codec_tag=0x31564646 width=320 height=240 has_b_frames=0 sample_aspect_ratio=N/A display_aspect_ratio=N/A pix_fmt=bgr0 level=-99 timecode=N/A id=N/A r_frame_rate=25/1 avg_frame_rate=25/1 time_base=1/25 start_time=0.000000 duration=1.000000 bit_rate=999800 nb_frames=25 nb_read_frames=N/A nb_read_packets=N/A TAG:language=eng TAG:handler_name=DataHandler [/STREAM] }}} There's no method to identify what version a given ffv1 encoding was made with. The specifications for the ffv1 header are here: http://ffmpeg.org/~michael/ffv1.html#toc-Subsection-4.3. If version >1 it may be useful to report the minor_version as well. At the moment I can't think of a reason to need to report things like coder_type and number of slices but it may be nice. -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1534> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#1534: report on ffv1 version and slices -------------------------------------+----------------------------------- Reporter: dericed | Owner: Type: enhancement | Status: closed Priority: normal | Component: avcodec Version: unspecified | Resolution: fixed Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Changes (by michael): * status: new => closed * resolution: => fixed * component: undetermined => avcodec Comment: ffplay -debug 1 <ffvfile> will show the version -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1534#comment:1> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#1534: report on ffv1 version and slices -------------------------------------+----------------------------------- Reporter: dericed | Owner: Type: enhancement | Status: closed Priority: normal | Component: avcodec Version: unspecified | Resolution: fixed Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Comment (by dericed): Using ffplay to determine the version is a bit awkward to handle programmatically. Is it feasible to grab this data through ffmpeg or ffprobe? -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1534#comment:2> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#1534: report on ffv1 version and slices -------------------------------------+----------------------------------- Reporter: dericed | Owner: Type: enhancement | Status: closed Priority: normal | Component: avcodec Version: unspecified | Resolution: fixed Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Comment (by richardpl): ffmpeg -v debug ... ? -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1534#comment:3> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#1534: report on ffv1 version and slices -------------------------------------+----------------------------------- Reporter: dericed | Owner: Type: enhancement | Status: closed Priority: normal | Component: avcodec Version: unspecified | Resolution: fixed Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Comment (by dericed): Not sure why I didn't try that. If anyone else needs it here is what I'm using to get a version number of the ffv1 codec: {{{ ffmpeg -debug 1 -i ffv1_file.mov -t 0.1 -f null - 2>&1 | grep -o "ver:[0-9]*" | head -n1 | cut -d: -f2 }}} -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1534#comment:4> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#1534: report on ffv1 version and slices -------------------------------------+----------------------------------- Reporter: dericed | Owner: Type: enhancement | Status: closed Priority: normal | Component: avcodec Version: unspecified | Resolution: fixed Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Comment (by cehoyos): Replying to [comment:4 dericed]:
If anyone else needs it here is what I'm using to get a version number of the ffv1 codec: {{{ ffmpeg -debug 1 -i ffv1_file.mov -t 0.1 -f null - }}} -vframes 1 may be more appropriate than -t 0.1
-- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1534#comment:5> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
participants (1)
-
FFmpeg