HLS:使用com.apple.streaming.transportStreamTimestamp PTS时间戳读取PRIV ID3标签

时间:2018-11-29 15:55:02

标签: ffmpeg hls aac id3

我有一个hls直播流,可以回溯30分钟(时移):

我想将30分钟窗口的一部分另存为本地mp4文件。

我解析了播放列表,下载了ts和aac片段,并将它们放在一起(连在一起)。结果始终是异步的。

ts片段中有一个时间戳,而aac片段中没有。 AAC段的时间戳可能在一个私有的id3标签中,但是我不知道如何读取它们。

这是一个很好的分析: https://github.com/flavioribeiro/nginx-audio-track-for-hls-module/issues/22

有人知道我如何读取该时间戳(操作系统:Linux)吗?

1 个答案:

答案 0 :(得分:0)

# get audio start from aac segment
# dump private id3 Tag
HEXDUMP=`exiftool -Private -b file.aac | od -t x8 --endian=big --address-radix=n | xargs echo -n`
# convert to decimal
DECIMAL=$((0x$HEXDUMP))
# it is an MPEG-2 Timestamp in 1/90000 Seconds, get it in seconds
AUDIOSTART=`expr $DECIMAL / 90000`