Firefox 使用gst(ts m3u8)生成的hls不在safari上玩(但在chrome上工作)

Firefox 使用gst(ts m3u8)生成的hls不在safari上玩(但在chrome上工作),firefox,gstreamer,hlsl,gstreamer-1.0,python-gstreamer,Firefox,Gstreamer,Hlsl,Gstreamer 1.0,Python Gstreamer,我试图使用gst从现有管道中的帧生成hls视频。一旦将帧作为numpy数组获取,我将使用以下方法创建ts和m3u8文件: appsrc emit-signals=True do-timestamp=true is-live=True caps={DEFAULT_CAPS}".format(**locals()) ! "queue" ! "videoconve

我试图使用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())
#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
以下是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())
#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上却不行。我试着改变一下管道,但没有效果,也不知道问题出在哪里。 有人知道吗

按照评论中的建议,我尝试更改配置文件,但没有改变任何内容。 我还发现,添加无声音频可以解决这个问题,因为浏览器可能会期望这样

编辑

因此,组合音频+配置文件使其工作,但由于我使用appsrc来获取帧,我不知道视频将要多长时间,所以如何生成没有这些信息的音频?
谢谢

为了让它正常工作,我将情景模式设置为高,并在视频上添加了音频。

设置情景模式。如果您不这样做,它可能会生成一个4:4:4的配置文件,而许多解码器都不支持。谢谢您的回答@Florianwoch我在另一个问题上遇到了这个问题,但我不知道如何做到这一点。您是否有一个链接或其他东西来记录这一点?谢谢第三个示例强制使用基线配置文件。因此,我尝试将配置文件设置为基线,但没有任何更改。视频仍然可以在ubuntu视频播放器和chrome中播放,但不能在firefox和safari上播放。@Florianwoch感谢您的链接。我在想,也许问题在于,我是在一帧一帧的管道中做这件事的,还有其他人经历过类似的事情吗?