【问题标题】:ffmpeg HLS timing broken because of broken .ts file由于 .ts 文件损坏,ffmpeg HLS 计时中断
【发布时间】:2019-12-12 06:08:56
【问题描述】:

所以我得到了 .m3u8 文件,看起来像这样:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:6.006,
seg-1-v1-a1.ts
#EXTINF:4.004,
seg-2-v1-a1.ts
#EXTINF:10.010,
eg-3-v1-a1.ts
#EXTINF:10.010,
seg-4-v1-a1.ts
#EXTINF:10.010,
seg-5-v1-a1.ts
#EXT-X-ENDLIST

我将所有片段文件放在一个文件夹中。 问题是“seg-4-v1-a1.ts”坏了(只有 5 MB,应该是 10 MB),当我尝试使用命令ffmpeg -i "M3U8URLS.mux" -c copy output.mp4 将它们转换为 mp4 时,我得到了一个错误的同步音频和视频。

ffmpeg的输出是

[hls,applehttp @ 000002e276a868a0] Opening 'crypto:seg-1-v1-a1.ts' for reading
[hls,applehttp @ 000002e276a868a0] Opening 'crypto:seg-2-v1-a1.ts' for reading
[hls,applehttp @ 000002e276a868a0] Opening 'crypto:seg-3-v1-a1.ts' for reading
[hls,applehttp @ 000002e276a868a0] Opening 'crypto:seg-4-v1-a1.ts' for reading
[mpegts @ 00000204393ed020] PES packet size mismatch
[hls,applehttp @ 000002e276a868a0] Opening 'crypto:seg-5-v1-a1.ts' for reading
frame=35130 fps=1927 q=-1.0 Lsize= 1017088kB time=00:00:40.12 bitrate=5667.5kbits/s speed=80.6x

我如何告诉 ffmpeg 它应该根据 #EXTINF 信息保持同步?

【问题讨论】:

    标签: ffmpeg http-live-streaming m3u8


    【解决方案1】:

    您必须修改播放列表并在损坏的文件后设置#EXT-X-DISCONTINUITY。

    【讨论】:

    • 文件损坏之后还是之前?
    • 在破碎的部分,如果缺少文件的开头,那么之前,如果缺少文件的结尾,那么之后。
    猜你喜欢
    • 2017-04-05
    • 1970-01-01
    • 2019-12-04
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多