【问题标题】:Can I build chromium with ffmpeg to support all video formats?我可以使用 ffmpeg 构建 chromium 以支持所有视频格式吗?
【发布时间】:2018-06-21 14:36:25
【问题描述】:

在Qt5.2版本下,我用的是QtWebView,它可以自动调用第三方扩展,支持avi、mpeg、mov、flv等视频格式。但是当我升级到Qt5.10,将QtWebView改成QtWebengineView后,效果不同了,无法调用第三方扩展。如果我想用 ffmpeg 修改 chromium 源以支持 QtWebengine 的所有视频格式,我该怎么办?

【问题讨论】:

    标签: chromium qtwebengine qt5.10


    【解决方案1】:

    你不需要使用 ffmpeg 来支持所有的视频格式。

    Vladimir所说,关注official build instructionsaudio/video page

    @Vladimir:我认为您无法启用对 Google Chrome 不支持的视频和音频格式的支持。

    是的,你可以。我们使用所有编解码器(AVC/H.264、HEVC/H.265、MPEG-4...)编译 Chromium,并且可以打开许多其他文件类型(MOV、AVI、MKV、M2TS...)。关注我们的instructions(GN 标志),您将能够使用所有编解码器构建 Chromium。 HEVC/H.265 更复杂。检查Chromium binariesfile type checker。一切都是完全免费和开源的。自己做! ;)

    【讨论】:

    • QtWebengine 基于 Chromium 33.0.1750.170。 :(
    • 是的,雷。它太旧了:/ 检查 Chromium Embedded Framework、Electron、Chromely、NW.js
    • 对不起。我没有看到 QtWebView 是基于 Webkit 而 Chromium 是基于 Blink(一个 webkit 分支)。
    • @Jerry 您可以编译 Chromium 将所有受支持的编解码器,包括默认情况下在 Chromium 中禁用的免费(Opus、Theora、WAV 等)和专有(H.264、MP4)编解码器。如果 Google Chrome(不是 Chromium)不支持某些视频和音频格式(例如一些非常自定义的视频格式),那么在构建 Chromium 时就无法启用这种格式。 Chromium 只是没有此类自定义视频格式所需的源代码。
    • @Vladimir 我完全同意你的观点,但从技术上讲,Chromium 是开源的,如果需要,你可以添加不支持的图像/文本/音频/视频格式和编解码器。但我承认这是很多工作。例如,FFmpeg (ffmpeg.org/ffmpeg-formats.html) 支持的所有格式——FFmpeg 已经在 Chromium 源代码中——可以在 Chromium 中原生支持。我的问题是为什么? Chromium 是浏览器,而不是瑞士刀! :)
    【解决方案2】:

    如果您使用官方的build instruction 构建 Chromium,那么您只需在args.gn 文件中添加以下选项:

    proprietary_codecs=true
    ffmpeg_branding="Chrome"
    

    【讨论】:

    • 它支持谷歌浏览器支持的所有音频和视频格式。
    • 我试过了。我需要支持 avi、mpeg、mov、flv 等。谷歌浏览器支持 Ogg、WebM、WAV、MP4。见chromium.org/audio-video
    • 我认为您无法启用对 Google Chrome 不支持的视频和音频格式的支持。
    【解决方案3】:

    对于 QtWebEngine,您只需配置 Qt 以使用 -proprietary-codecs (

    如果您使用 -system-webengine-ffmpeg 进行额外配置,您还将使用系统 FFmpeg 及其支持的所有编解码器。它仍然不支持 Chrome 不支持的任何容器格式。

    【讨论】:

      【解决方案4】:

      没有-webengine-proprietary-codec -system-webengine-ffmpeg qtwebengine 将支持以下

      音频编解码器:opus、vorbis、flac。

      视频编解码器:vc8、vc9。

      如果像这样重新编码您的视频,QtWebEngine 可以播放您的视频:

      ffmpeg -i video.mp4 -c:v vp9 -c:a libopus -f webm video.webm
      

      【讨论】:

        猜你喜欢
        • 2017-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-05
        • 1970-01-01
        • 1970-01-01
        • 2021-06-10
        • 2017-04-29
        相关资源
        最近更新 更多