Audio 为什么FFMPEG framemd5提供不同的音频大小?

Audio 为什么FFMPEG framemd5提供不同的音频大小?,audio,ffmpeg,checksum,Audio,Ffmpeg,Checksum,我使用FFmpeg framemd5来验证,当我将Sony XDCAM“MP4”文件重新包装为MXF文件时,我没有对音频视频数据进行重新编码。“MP4”有一个立体声文件PCM音频流,该音频流必须为MXF容器拆分为两个单声道流。视频为25 fps,音频为48000采样率。(我知道MP4容器规范不允许PCM作为音频流。但是,这是索尼的特殊非标准MP4,幸运的是FFmpeg仍能读取) 我的原版(MP4)的framemd5输出的前几行如下: 0, 0, 0,

我使用FFmpeg framemd5来验证,当我将Sony XDCAM“MP4”文件重新包装为MXF文件时,我没有对音频视频数据进行重新编码。“MP4”有一个立体声文件PCM音频流,该音频流必须为MXF容器拆分为两个单声道流。视频为25 fps,音频为48000采样率。(我知道MP4容器规范不允许PCM作为音频流。但是,这是索尼的特殊非标准MP4,幸运的是FFmpeg仍能读取)

我的原版(MP4)的framemd5输出的前几行如下:

0,          0,          0,        1,  3110400, 1851d2848eeef6636ea5ff1caa0c3555
1,          0,          0,     1024,     4096, eb35a0242f1b59d64dc340913d4ba757
1,       1024,       1024,     1024,     4096, 37c3a63ff6af92890056e42d8146275a
0,          0,          0,        1,  3110400, 1851d2848eeef6636ea5ff1caa0c3555
1,          0,          0,     1920,     3840, a01565b99da62249d86200070eff2729
0,          1,          1,        1,  3110400, eb46f1690b2f8e3f32d07cf8ccefcdf4
MXF的前几行输出如下:

0,          0,          0,        1,  3110400, 1851d2848eeef6636ea5ff1caa0c3555
1,          0,          0,     1024,     4096, eb35a0242f1b59d64dc340913d4ba757
1,       1024,       1024,     1024,     4096, 37c3a63ff6af92890056e42d8146275a
0,          0,          0,        1,  3110400, 1851d2848eeef6636ea5ff1caa0c3555
1,          0,          0,     1920,     3840, a01565b99da62249d86200070eff2729
0,          1,          1,        1,  3110400, eb46f1690b2f8e3f32d07cf8ccefcdf4
在MXF输出中,音频流的“持续时间”为1920(从48000/25=1920开始似乎有意义,“大小”为3840(从48000*16/8/25=3840开始有意义)

有人能解释为什么MP4文件的持续时间为1024,大小为4096,这是一个立体声文件音频流,必须为MXF容器拆分为两个单声道流吗

如果你这样做,你是在对音频进行转码。但是由于目标编解码器是PCM,并且流参数大概是不变的,所以音频保真度是保持不变的

至于您的主要查询,MP4通常包含AAC音频,其中每个帧包含1024个样本。PCM是未编码的音频,因此可以封装到任意大小的帧中

检查MXF以复制MP4帧时,添加
-af asetnsamples=1024