新版ffprobe误识别AAC为MP2及参数差异问题求助
FFmpeg音频编码识别错误及参数差异问题
问题描述
我有一个采用H.264视频编码、AAC音频编码的测试视频。
自行编译的FFmpeg版本情况
我编译的ffprobe版本信息如下:
ffprobe version 7.0.2 Copyright (c) 2007-2024 the FFmpeg developers built with gcc 14.1.0 (Rev3, Built by MSYS2 project) configuration: --enable-shared libavutil 59. 8.100 / 59. 8.100 libavcodec 61. 3.100 / 61. 3.100 libavformat 61. 1.100 / 61. 1.100 libavdevice 61. 1.100 / 61. 1.100 libavfilter 10. 1.100 / 10. 1.100 libswscale 8. 1.100 / 8. 1.100 libswresample 5. 1.100 / 5. 1.100
执行以下命令获取视频信息:
ffprobe -v quiet -print_format ini -show_streams -show_packets test_h264.mp4 > test_h264.ini
得到的INI文件显示音频编码为MP2:
[streams.stream.0] index=0 codec_name=mp2 codec_long_name=MP2 (MPEG audio layer 2) profile=unknown codec_type=audio codec_tag_string=mp4a codec_tag=0x6134706d sample_fmt=fltp sample_rate=44100 channels=2 channel_layout=stereo bits_per_sample=0 initial_padding=0 id=0x1 r_frame_rate=0/0 avg_frame_rate=0/0 time_base=1/44100 start_pts=2788 start_time=0.063220 duration_ts=435455 duration=9.874263 bit_rate=127706 max_bit_rate=N/A bits_per_raw_sample=N/A nb_frames=378 nb_read_frames=N/A nb_read_packets=378
其他正确识别的版本情况
另一位开发者使用的ffprobe版本:
ffprobe version 2023-02-22-git-d5cc7acff1-full_build-www.gyan.dev Copyright (c) 2007-2023 the FFmpeg developers
该版本能正确识别音频编码为AAC:
[streams.stream.1] index=1 codec_name=aac codec_long_name=AAC (Advanced Audio Coding) profile=LC codec_type=audio codec_tag_string=mp4a codec_tag=0x6134706d sample_fmt=fltp sample_rate=44100 channels=2 channel_layout=stereo bits_per_sample=0 initial_padding=0 id=0x2 r_frame_rate=0/0 avg_frame_rate=0/0 time_base=1/44100 start_pts=1764 start_time=0.040000 duration_ts=436480 duration=9.897506 bit_rate=111733 max_bit_rate=N/A bits_per_raw_sample=N/A nb_frames=427 nb_read_frames=N/A nb_read_packets=427 extradata_size=5
Ubuntu版本测试情况
Ubuntu上测试的ffprobe 6.1.1-3ubuntu5版本信息:
ffprobe version 6.1.1-3ubuntu5 Copyright (c) 2007-2023 the FFmpeg developers built with gcc 13 (Ubuntu 13.2.0-23ubuntu3) configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared libavutil 58. 29.100 / 58. 29.100 libavcodec 60. 31.102 / 60. 31.102 libavformat 60. 16.100 / 60. 16.100 libavdevice 60. 3.100 / 60. 3.100 libavfilter 9. 12.100 / 9. 12.100 libswscale 7. 5.100 / 7. 5.100 libswresample 4. 12.100 / 4. 12.100 libpostproc 57. 3.100 / 57. 3.100
该版本也能正确识别音频为AAC,但部分参数(如bit_rate)与其他版本存在差异:
[streams.stream.1] index=1 codec_name=aac codec_long_name=AAC (Advanced Audio Coding) profile=LC codec_type=audio codec_tag_string=mp4a codec_tag=0x6134706d sample_fmt=fltp sample_rate=44100 channels=2 channel_layout=stereo bits_per_sample=0 initial_padding=0 id=0x2 r_frame_rate=0/0 avg_frame_rate=0/0 time_base=1/44100 start_pts=0 start_time=0.000000 duration_ts=441353 duration=10.008005 bit_rate=110399 max_bit_rate=N/A bits_per_raw_sample=N/A nb_frames=432 nb_read_frames=N/A nb_read_packets=432 extradata_size=5
疑问
- 自行编译的7.0.2版本(更新版本)为何会将AAC识别为MP2?
- 不同FFmpeg版本之间,音频参数(如bit_rate、duration、nb_frames)存在差异的原因是什么?
内容的提问来源于stack exchange,提问作者alancc
相关产品推荐
相关产品推荐

