gpt4 book ai didi

Python、Flask、ffmpeg 视频流 : Video does not work in Firefox

转载 作者:行者123 更新时间:2023-12-01 09:33:06 34 4
gpt4 key购买 nike

我正在为视频管理系统编写预览部分,它的工作方式就像带有标准标签的 Chrome 中的魅力,但由于某种原因,Firefox 无法识别 MIME 类型,这让我很烦恼。

这是我的流类:

class Stream:
run = False
FNULL = open(os.devnull, 'w')
overlay = ffmpeg.input("somelogo.png")

def __init__(self, camid):
camUtil = CameraUtil()
self.camid = camid
self.streamurl = camUtil.get_stream_from_id(self.camid)['streamURL']
print(self.streamurl)
self.args = ffmpeg.input(self.streamurl)
# vcodec="libvpx",
# acodec="libvorbis",
self.args = ffmpeg.output(self.args, "-",
f="matroska",
vcodec="copy",
acodec="copy",
blocksize="1024",
# strftime="1",
# segment_time="60",
# segment_format="matroska"
preset="ultrafast",
metadata="title='test'"
)
self.args = ffmpeg.get_args(self.args)
print(self.args)
self.pipe = subprocess.Popen(['ffmpeg'] + self.args,
stdout=subprocess.PIPE,)
#stderr=self.FNULL)

def dep_stream(self):
def gen():
try:
f = self.pipe.stdout
byte = f.read(1024)
while byte:
yield byte
byte = f.read(1024)
finally:
self.pipe.kill()

return Response(gen(), status=200,
mimetype='video/webm',
headers={'Access-Control-Allow-Origin': '*',
"Content-Type": "video/webm",
})

我的html播放部分:


<video id="live_page_player" id="video" preload="auto" autoplay width="1280" height="720">
<source src="/stream/{{ camid }}" type='video/webm;codecs="vp8, vorbis"'/>
YOUR BROWSER DOES NOT SUPPORT HTML5, WHAT YEAR ARE YOU FROM?!
</video>

Firefox 显示“未找到支持格式和 MIME 类型的视频”,并在控制台中显示

错误:错误代码:NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)

我是不是做了什么蠢事?!或者我错过了什么,因为它在谷歌浏览器上就像一个魅力

我需要新鲜的眼光。

请帮忙

最佳答案

所以在我绞尽脑汁之后,我决定检查一下控制台(是的,我知道)

我发现 Firefox 会抛出 NS_ERROR_DOM_MEDIA_METADATA_ERR,经过一番激烈的谷歌搜索后,我发现 Firefox 不支持原始 matroska(或者更确切地说,他们出于某种原因不让你玩它),而 google chrome 确实支持它。

解决方案实际上非常简单,您必须使用 vcodec libvpx-vp9 或 vp8 以及编码的 libopus 或 libvorbis 重新编码流

Python 语法的 ffmpeg 如下所示:

self.args = ffmpeg.output(self.args, "-",
f="webm",
vcodec="libvpx-vp9",
acodec="loboupus",
blocksize="1024",
# strftime="1",
# segment_time="60",
# segment_format="matroska"
preset="ultrafast",
metadata="title='test'"
)

请注意,这会严重消耗 CPU,我仍在使用它,但这就是解决方案!

关于Python、Flask、ffmpeg 视频流 : Video does not work in Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781878/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com