Python,Flask,ffmpeg视频流:视频在Firefox中不起作用

时间:2018-04-11 18:12:07

标签: python flask ffmpeg

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

这是我的流类:

If Me.Combo1.Visible = True Then

    If IsNull(Me.Combo1) = False Then

        textsum = textsum + 1
        totalcount = totalcount + 1

    Else

        totalcount = totalcount + 1

        If Me.ProjectEndDate<= Date Then

            Me.Combo1.BackColor = RGB(255, 0, 0)

        End If

    End If
End if

我的html播放部分:

mapcar

Firefox说&#34;找不到支持格式和MIME类型的视频&#34;并在控制台中说

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

我做了一些愚蠢的事吗?!或者我错过了什么,因为它像谷歌铬一样魅力

我需要新鲜的眼睛。

帮助解决

1 个答案:

答案 0 :(得分:1)

所以在抨击我之后,我决定查看控制台(是的,我知道)

我发现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,我仍在使用它,但这是解决方案!