[Libav-user] encode_video.c example generates malformed video file with libx264
Igor Belyakov
belyakov-i at spsinf.ru
Sat Apr 25 10:15:04 EEST 2020
I use FFMPEG libraries and headers from here:
https://ffmpeg.zeranoe.com/builds/
Video file generated by this example seems to lack timestamps. It can be fixed with ffmpeg ('ffmpeg.exe -i test.mp4 -c:v copy test_.mp4') which reports the following message:
[mp4 @ 0000021b3b611700] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
How do I generate a well-formed file with libav?
Complete output of encode_video example:
[libx264 @ 000001a7cfee5a40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000001a7cfee5a40] profile High, level 1.3, 4:2:0, 8-bit
Send frame 0
Send frame 1
Send frame 2
Send frame 3
Send frame 4
Send frame 5
Send frame 6
Send frame 7
Send frame 8
Send frame 9
Send frame 10
Send frame 11
Send frame 12
Send frame 13
Send frame 14
Send frame 15
Send frame 16
Send frame 17
Send frame 18
Send frame 19
Send frame 20
Send frame 21
Write packet 0 (size= 2055)
Send frame 22
Write packet 2 (size= 672)
Send frame 23
Write packet 1 (size= 133)
Send frame 24
Write packet 4 (size= 766)
Write packet 3 (size= 193)
Write packet 6 (size= 681)
Write packet 5 (size= 515)
Write packet 8 (size= 737)
Write packet 7 (size= 437)
Write packet 9 (size= 506)
Write packet 10 (size= 2240)
Write packet 12 (size= 1011)
Write packet 11 (size= 701)
Write packet 14 (size= 905)
Write packet 13 (size= 495)
Write packet 16 (size= 931)
Write packet 15 (size= 639)
Write packet 18 (size= 1267)
Write packet 17 (size= 575)
Write packet 19 (size= 611)
Write packet 20 (size= 2361)
Write packet 22 (size= 1122)
Write packet 21 (size= 747)
Write packet 24 (size= 718)
Write packet 23 (size= 703)
[libx264 @ 000001a7cfee5a40] frame I:3 Avg QP:25.32 size: 2219
[libx264 @ 000001a7cfee5a40] frame P:12 Avg QP:24.19 size: 827
[libx264 @ 000001a7cfee5a40] frame B:10 Avg QP:28.20 size: 514
[libx264 @ 000001a7cfee5a40] consecutive B-frames: 20.0% 80.0%
[libx264 @ 000001a7cfee5a40] mb I I16..4: 78.4% 11.4% 10.2%
[libx264 @ 000001a7cfee5a40] mb P I16..4: 76.7% 0.9% 0.2% P16..4: 20.9% 0.7% 0.3% 0.0% 0.0% skip: 0.3%
[libx264 @ 000001a7cfee5a40] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 11.7% 0.3% 0.0% direct:11.1% skip:77.0% L0:25.0% L1:39.1% BI:35.9%
[libx264 @ 000001a7cfee5a40] final ratefactor: 15.76
[libx264 @ 000001a7cfee5a40] 8x8 transform intra:3.6% inter:19.2%
[libx264 @ 000001a7cfee5a40] direct mvs spatial:0.0% temporal:100.0%
[libx264 @ 000001a7cfee5a40] coded y,uvDC,uvAC intra: 4.8% 31.7% 4.2% inter: 1.3% 35.7% 8.8%
[libx264 @ 000001a7cfee5a40] i16 v,h,dc,p: 0% 0% 0% 100%
[libx264 @ 000001a7cfee5a40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 3% 32% 16% 48% 0% 0% 0% 0% 0%
[libx264 @ 000001a7cfee5a40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 7% 14% 53% 1% 5% 2% 7% 1%
[libx264 @ 000001a7cfee5a40] i8c dc,h,v,p: 1% 6% 4% 88%
[libx264 @ 000001a7cfee5a40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000001a7cfee5a40] ref P L0: 97.3% 0.7% 1.5% 0.3% 0.1% 0.1%
[libx264 @ 000001a7cfee5a40] ref B L0: 64.1% 33.4% 2.4%
[libx264 @ 000001a7cfee5a40] kb/s:173.77
Complete output of ffmpeg copy:
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20200122
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, h264, from 'test.mp4':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: h264 (High), yuv420p(progressive), 352x288, 25 fps, 25 tbr, 1200k tbn, 50 tbc
Output #0, mp4, to 'test_.mp4':
Metadata:
encoder : Lavf58.29.100
Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 352x288, q=2-31, 25 fps, 25 tbr, 1200k tbn, 1200k tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mp4 @ 000001c620775380] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[mp4 @ 000001c620775380] pts has no value
Last message repeated 24 times
frame= 25 fps=0.0 q=-1.0 Lsize= 22kB time=00:00:00.92 bitrate= 197.0kbits/s speed=24.4x
video:21kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.276967%
More information about the Libav-user
mailing list