[Libav-user] Reference frames
Gabriele Greco
gabriele.greco at hudl.com
Fri Apr 9 18:05:26 EEST 2021
I'm trying to find the number of reference frames used by a video using the avcodec/format API. From the API description it seems that all I have to do is to use:
AVCodecContext::refs
... but that value is always at 1. I know for sure (both since I encoded the file and for the mediainfo output) that the ref frames of my sample video files are different.
I'm quite sure it's a bug of ffmpeg since also if I check the reference frame number using ffmpeg/ffprobe (master, compiled 10 minutes before writing this post) it returns 1 for the given video file (that should have 5).
Further digging in the net about this problem I found also a ticket about this:
https://trac.ffmpeg.org/ticket/6001
#6001 (ffprobe: incorrect determination of the number of reference frames) – FFmpeg<https://trac.ffmpeg.org/ticket/6001>
Hi! ffprobe incorrect determinates of the number of reference frames. ffprobe for all video returns refs=1, which does not coincide with the values returned by MediaInfo?. The attached txt file contains information returned by ffprobe and MediaInfo?.
trac.ffmpeg.org
... that is opened since 5 years 🙁
If someone wants to take a look at this problem, here is the test file I used
http://cdn5.wyscout.com/get/video.mp4
Here is the mediainfo report of that file:
iMac-2 $ mediainfo ~/Desktop/video.mp4
General
Complete name : video.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 8.30 MiB
Duration : 29 s 143 ms
Overall bit rate mode : Variable
Overall bit rate : 2 388 kb/s
Performer : Q2xpcHBlciAzODQgKGlwLTEwLTUtMy04NCk=}
Writing application : Lavf58.20.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline at L3.1
Format settings : 5 Ref Frames
Format settings, CABAC : No
Format settings, Reference frames : 5 frames
Format settings, GOP : M=1, N=25
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 29 s 120 ms
Bit rate : 2 200 kb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
[...]
... and here is what ffmpeg/ffprobe says of the file (master, but also 4.2.x has the same results) :
iMac-2 $ ./ffmpeg -loglevel verbose -i ~/Desktop/video.mp4
ffmpeg version N-101901-gb593abda6c Copyright (c) 2000-2021 the FFmpeg developers
built with Apple clang version 12.0.0 (clang-1200.0.32.29)
configuration: --disable-lzma --prefix=/usr/local/sdk/darwin-x64 --enable-libx264 --enable-libfdk-aac --enable-nonfree --enable-gpl --enable-libopus --enable-libvpx --enable-libvorbis --enable-pic --disable-sdl2
libavutil 56. 72.100 / 56. 72.100
libavcodec 58.135.100 / 58.135.100
libavformat 58. 78.100 / 58. 78.100
libavdevice 58. 14.100 / 58. 14.100
libavfilter 7.111.100 / 7.111.100
libswscale 5. 10.100 / 5. 10.100
libswresample 3. 10.100 / 3. 10.100
libpostproc 55. 10.100 / 55. 10.100
[h264 @ 0x7faec700b000] Reinit context to 1280x720, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/gabry/Desktop/video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
artist : Q2xpcHBlciAzODQgKGlwLTEwLTUtMy04NCk=}
encoder : Lavf58.20.100
Duration: 00:00:29.14, start: 0.000000, bitrate: 2388 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1280x720 [SAR 1:1 DAR 16:9], 2296 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 87 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20210409/09c798b7/attachment.html>
More information about the Libav-user
mailing list