我试图使用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视频播放器和铬上玩得很好,但在safari和firefox上却不行。我试过稍微改变管道,但没什么效果,也不知道问题出在哪里。有人知道吗?
按照评论中的建议,我尝试更改配置文件,但没有改变任何东西。我还发现,它添加了一个无声的音频可以解决问题,因为浏览器可能期望这样做。
编辑
因此,组合式音频+配置文件使其工作,但由于我使用appsrc获得的帧,我不知道视频将是多长时间,所以我如何能够生成音频没有这些信息?谢谢
发布于 2020-10-15 10:44:35
因此,为了工作,我将配置文件设置为很高,并在视频中添加了一个音频。
https://stackoverflow.com/questions/64351863
复制相似问题