I am trying to use ffmpeg to determine the overall media volume. I use only one pass :
ffmpeg -i C:\Users\User\Desktop\test.mp4 -af loudnorm=I=-23:tp=-1:LRA=15:print_format=json -f null -
Out:
C:\Users\User\Desktop\ffmpeg-4.2.1-win64-static\bin>ffmpeg -i C:\Users\User\Desktop\test.mp4 -af loudnorm=I=-23:tp=-1:LRA=15:print_format=json -f null -
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.1 (GCC) 20190807
configuration: --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
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\User\Desktop\test.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2019-01-31T07:52:41.000000Z
encoder : Lavf57.57.100
Duration: 00:00:11.00, start: 0.000000, bitrate: 10459 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 8918 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
creation_time : 2019-01-31T07:52:41.000000Z
handler_name : VideoHandler
timecode : 00:00:00:00
Stream #0:1(und): Audio: pcm_s16be (twos / 0x736F7774), 48000 Hz, stereo, s16, 1536 kb/s (default)
Metadata:
creation_time : 2019-01-31T07:52:41.000000Z
handler_name : SoundHandler
Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
Metadata:
creation_time : 2019-01-31T07:52:41.000000Z
handler_name : TimeCodeHandler
timecode : 00:00:00:00
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
Stream #0:1 -> #0:1 (pcm_s16be (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Stream #0:0(und): Video: wrapped_avframe, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
Metadata:
creation_time : 2019-01-31T07:52:41.000000Z
handler_name : VideoHandler
timecode : 00:00:00:00
encoder : Lavc58.54.100 wrapped_avframe
Stream #0:1(und): Audio: pcm_s16le, 192000 Hz, stereo, s16, 6144 kb/s (default)
Metadata:
creation_time : 2019-01-31T07:52:41.000000Z
handler_name : SoundHandler
encoder : Lavc58.54.100 pcm_s16le
[null @ 00000191eeeb7740] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 274 >= 274
frame= 275 fps=0.0 q=-0.0 Lsize=N/A time=00:00:11.04 bitrate=N/A speed=15.8x
video:144kB audio:8250kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_loudnorm_0 @ 00000191eee03500]
{
"input_i" : "-22.39",
"input_tp" : "-11.87",
"input_lra" : "5.20",
"input_thresh" : "-32.54",
"output_i" : "-21.67",
"output_tp" : "-10.61",
"output_lra" : "4.90",
"output_thresh" : "-31.82",
"normalization_type" : "dynamic",
"target_offset" : "-1.33"
}
On short media (less than 30 seconds), the results of ffmpeg begin to differ significantly from similar checks in Adobe Premier Pro or Orban. When checking this file in Orban. When checking this file in Adobe Premier Pro.
Why it happens? And what data is more accurate in this case?