【问题标题】:HTTP Live Streaming MPEG TS segmentHTTP Live Streaming MPEG TS 段
【发布时间】:2012-01-24 01:30:27
【问题描述】:

我正在使用 FFMPEG 和一个免费的分段器(Carson Mcdonald's)来生成我的 ts 片段,然后我将其保存到网络服务器并通过播放 .m3u8 来使用 Quicktime 播放

如果我有片段 1、2、3、4 和另一个带有片段 1、2、3、4 的流,并且想将它们交错,我应该怎么做。如果我这样做: 1,2,其他流的 3, 4 它工作正常。但是,如果我想做如下操作:1,2,其他流的 4, 4 它不起作用。

换句话说,要添加的片段必须与我要替换的片段具有相同的编号。这是为什么?跟PCR有关系吗?我希望能够在任何地方交错任何片段。我该怎么做?

谢谢,

M3U8 文件是

#EXTM3U 
#EXT-X-TARGETDURATION:10 
#EXT-X-MEDIA-SEQUENCE:21 
#EXTINF:10, sample_ep_386k-00021.ts 
#EXTINF:10, media_2.ts 
#EXTINF:10, sample_ep_386k-00023.ts

【问题讨论】:

  • 你能发布 M3U8 文件吗?
  • 作为一个实验,如果你将文件放在一起,例如'cat 1 2 other4 4 > test.ts',你能在 VLC 中播放该视频吗?
  • 您能否详细说明“它不起作用”?你看到了什么行为?
  • @TheJuice 我的意思是它播放 sample_ep_386k-00021 然后当它进入另一个流(media_2)的片段时,它会冻结,然后跳转并进入之后的片段(sample.. 23)。 ..所以它甚至不播放它。但是 IF media_2 实际上是另一个流中的第 22 段.. 它播放得很好!
  • @TheJuice 当我按照你的建议连接文件时,它们可以正常使用 VLC 播放......我觉得问题是当我在没有连接的情况下使用播放列表文件播放它们时。

标签: http ffmpeg live-streaming mpeg transport-stream


【解决方案1】:

您是否修改了.M3U8 播放列表(索引)文件以指向这两个4 文件?我假设它们位于服务器上的不同位置。

【讨论】:

  • 是的,我对其进行了修改以包含新段的位置。目前,为简单起见,我将它们保持在同一位置。这是播放列表文件:#EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:21 #EXTINF:10, sample_ep_386k-00021.ts #EXTINF:10, media_2.ts #EXTINF:10, sample_ep_386k-00023.ts 其中 media_2 来自另一个流,段号 2。
  • 只是为了清楚如果 media_2 甚至是 sample_ep_386k-00003 或同一流中的任何段但段号不同..它也不起作用。
  • 我找到了解决我原来问题的方法。谢谢。
  • @tommychheng 对不起,我不太记得了,因为那是前一阵子了.. 但我相信我没有编辑当前的播放列表文件,而是用片段指向另一个播放列表文件我想交错,完成后再指向这个...
【解决方案2】:

这是 SO 中许多人面临的常见问题之一。

在这里查看我的答案:MPEG-TS Segments HTTP Live Streaming

要检查的东西:

o PCR(时间戳)不连续
o 匹配帧率
o 文件格式
o 曲目的数量和类型
o 编码参数
o 编码序列

【讨论】:

    猜你喜欢
    • 2012-08-11
    • 2017-05-23
    • 1970-01-01
    • 2012-01-27
    • 2015-01-29
    • 2014-01-21
    • 2015-01-12
    • 2013-12-25
    • 1970-01-01
    相关资源
    最近更新 更多