【问题标题】:mpeg-2 ts video audio skipping - HTTP Live Streamingmpeg-2 ts 视频音频跳过 - HTTP Live Streaming
【发布时间】:2012-08-11 09:01:38
【问题描述】:

我有多个 mp4 流,我使用 ffmpeg 将它们转换为 mpeg-2 ts 格式

ffmpeg -i 0.mp4 -vcodec libx264 -sameq -acodec libfaac -fflags +genpts -coder 0 -f mpegts 0.ts

mp4 的范围从 1 到 n。将它们全部转换后,我创建了一个类似于以下内容的清单文件:

#EXTM3U
#EXT-X-TARGETDURATION:4
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:EVENT
#EXTINF:4.000,
http://localhost/Nick2/0.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.97,
http://localhost/Nick2/1.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.97,
http://localhost/Nick2/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.97,
http://localhost/Nick2/3.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.97,
http://localhost/Nick2/4.ts
#EXT-X-ENDLIST

我添加了#EXT-X-DISCONTINUITY,因为我正在尝试背靠背播放转换后的 mp4。问题是,如果我尝试使用 HTTP 直播,文件之间的音频中会有明显的 pop。但如果在 QT 中播放这些片段,这并不明显。 关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: ffmpeg http-live-streaming mpeg-2


    【解决方案1】:

    所以,由于我想做 Http 直播,我将文件连接起来,然后再次拆分它们,这使得音频弹出消失了。尽管苹果媒体流验证器仍然出错,但一切似乎运行良好......

    【讨论】:

      【解决方案2】:

      片段之间的间隙或弹出是由解码器被重置引起的。这基本上就是#EXT-X-DISCONTINUITY 标签的用途。

      您可以删除在同一时间线上制作流的不连续性。这将要求您连接源文件,然后对输出进行编码和分段。以下是一些关于串联的文档:http://www.ffmpeg.org/faq.html#How-can-I-concatenate-video-files_003f

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        • 1970-01-01
        • 2017-05-23
        • 2013-07-16
        • 1970-01-01
        • 1970-01-01
        • 2012-03-20
        相关资源
        最近更新 更多