0

I am using FFmpeg framemd5 to verify that when I rewrap a Sony XDCAM "MP4" file to an MXF file I am not re-encoding the audio-video data. The "MP4" has a stereo file PCM audio stream, which has to be split into two mono streams for the MXF container. The video is 25 fps and the audio is 48000 sample rate. (I know that the MP4 container specification does not allow PCM as an audio stream. However, this is Sony's special non-standard MP4 - which fortunately FFmpeg will still read)

The first few lines of framemd5 output for my original (MP4) are as follows:

0,          0,          0,        1,  3110400, 1851d2848eeef6636ea5ff1caa0c3555
1,          0,          0,     1024,     4096, eb35a0242f1b59d64dc340913d4ba757
1,       1024,       1024,     1024,     4096, 37c3a63ff6af92890056e42d8146275a

The first few lines output for the MXF are as follows:

0,          0,          0,        1,  3110400, 1851d2848eeef6636ea5ff1caa0c3555
1,          0,          0,     1920,     3840, a01565b99da62249d86200070eff2729
0,          1,          1,        1,  3110400, eb46f1690b2f8e3f32d07cf8ccefcdf4

In the MXF output the "duration" for the audio stream is 1920 (which seems to make sense since 48000 / 25 = 1920, and the "size" is 3840 (which makes sense because 48000*16/8/25 = 3840)

Can somebody explain why the MP4 file is having duration = 1024, and size = 4096

swami
  • 673
  • 1
  • 9
  • 18

1 Answers1

1

a stereo file audio stream, which has to be split into two mono streams for the MXF container

If you're doing this, you're transcoding the audio. But since the target codec is PCM, and stream parameters are presumably unchanged, audio fidelity is preserved.

As to your main query, MP4s typically contain AAC audio, where each frame contains 1024 samples. PCM is uncoded audio and so can be encapsulated into frames of arbitrary sizes.

Add -af asetnsamples=1024 when checking the MXF to replicate the MP4 framing.

Gyan
  • 85,394
  • 9
  • 169
  • 201