[FFmpeg-user] Duration of source video and substracted audio different

Moritz Barsnick barsnick at gmx.net
Thu Dec 15 13:23:42 EET 2016


On Thu, Dec 15, 2016 at 10:02:03 +0100, Carl Eugen Hoyos wrote:
> Consider using a script that first downloads all segments, then check
> if something is missing.

Yesterday, when looking into this report, I did exactly that: I
downloaded the segments using wget:

$ wget -Sv http://cdn.live.360.cn/huikan_news/vod-media/_XW_203286B417B7C6466B3B_20160627185953.m3u8
$ for u in `grep -F .ts ../_XW_203286B417B7C6466B3B_20160627185953.m3u8`; do wget -Sv "$u"; done

Then concatenated them in order (under the assumption that they don't overlap):

$ for f in $(grep -F .ts ../_XW_203286B417B7C6466B3B_20160627185953.m3u8 | perl -pe 's|.*/([^/]+)$|$1|'); do cat $f; done > _XW_203286B417B7C6466B3B_20160627185953.ts

This resulting MPEG-TS shows the same duration as the original HLS:

  Duration: 00:06:52.07, start: 1.400000, bitrate: 673 kb/s

Using
$ ffmpeg -i _XW_203286B417B7C6466B3B_20160627185953.ts -vn -f null -
or
$ ffmpeg -i _XW_203286B417B7C6466B3B_20160627185953.ts -vn _XW_203286B417B7C6466B3B_20160627185953.wav
ffmpeg will seem to process 00:06:51.84:
  size=   31904kB time=00:06:51.84 bitrate= 634.6kbits/s speed= 261x    
and also copy this duration into other formats' metadata, such as M4A.

Yet the contained AAC stream is apparently shorter:
$ ffmpeg -i _XW_203286B417B7C6466B3B_20160627185953.ts -vn -c copy _XW_203286B417B7C6466B3B_20160627185953.aac
$ ffmpeg -i _XW_203286B417B7C6466B3B_20160627185953.aac -f null -
[...]
size=N/A time=00:06:10.40 bitrate=N/A speed= 426x    

So the AAC stream is just shorter than the video, apparently??? Apparently not:

What's interesting is that the MPEG-TS has audio packets with actual
samples at the higher timestamps:

media_type=audio
best_effort_timestamp_time=413.218211
nb_samples=1024

And if you watch the resulting MPEG-TS, you will notice that the audio
plays for more that 06:10. Converting with "-loglevel verbose" shows a
lot of continuity check errors, perhaps they have to do with this?:

[mpegts @ 0xbc3d900] Continuity check failed for pid 17 expected 1 got 0
[...]

Moritz


More information about the ffmpeg-user mailing list