【问题标题】:hls generated with gst (ts m3u8) not playing on safari (but working on chrome)使用 gst (ts m3u8) 生成的 hls 不在 safari 上播放(但在 chrome 上工作)
【发布时间】:2020-10-14 11:00:19
【问题描述】:

我正在尝试使用 gst 从现有管道中的帧生成 hls 视频。一旦我将框架作为 numpy 数组,我将使用以下内容创建 ts 和 m3u8 文件:

            appsrc emit-signals=True do-timestamp=true is-live=True  
            caps={DEFAULT_CAPS}".format(**locals()) !
            "queue" !
            "videoconvert" !
            "x264enc" !
            "mpegtsmux" !
            f"hlssink location={playlist}.%04d.ts " !
            f"playlist-location={playlist}.m3u8"]) 

where default caps = "video/x-raw,format={VIDEO_FORMAT},width={WIDTH},height={HEIGHT},framerate={FPS_STR}".format(**locals())

这是 m3u8 文件的示例:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:15

#EXTINF:15.000000953674316,
20201014_103647.0000.ts
#EXTINF:15.000000953674316,
20201014_103647.0001.ts
#EXTINF:15.000000953674316,
20201014_103647.0002.ts
#EXTINF:7.8000001907348633,
20201014_103647.0003.ts
#EXT-X-ENDLIST

在我的 ubuntu 视频播放器和 chrome 上可以正常播放,但在 safari 和 firefox 上却不行。我试过稍微改变管道,但没有任何效果,也不知道问题出在哪里。 有人知道吗?

按照 cmets 中的建议,我尝试更改配置文件,但没有任何改变。 我还发现添加无声音频可以解决问题,因为浏览器可能会出现这种情况。

编辑

所以组合音频 + 配置文件使其工作,但由于我使用 appsrc 来获取帧,我不知道视频会持续多久,所以我如何在没有这些信息的情况下生成音频? 谢谢

【问题讨论】:

  • 设置个人资料。如果不这样做,它可能会生成许多解码器不支持的 4:4:4 配置文件。
  • 感谢您的回答@FlorianZwoch 我在另一个问题上遇到了这个问题,但我不知道该怎么做你有链接或记录这个的东西吗?谢谢。
  • gstreamer.freedesktop.org/documentation/x264/… 第三个示例强制基线配置文件。
  • 所以我已经尝试将配置文件设置为基线,但没有任何改变,视频仍然可以在 ubuntu 视频播放器和 chrome 中播放,但不能在 Firefox 和 safari 上播放。@FlorianZwoch 感谢您提供链接。我在想也许问题是我正在逐帧在管道中做这件事,有没有其他人经历过类似的事情?

标签: firefox gstreamer hlsl gstreamer-1.0 python-gstreamer


【解决方案1】:

为了让它工作,我将配置文件设置为高,并在视频上添加了音频。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 2023-03-28
    • 2016-02-10
    相关资源
    最近更新 更多