Ray
Ray

Reputation: 61

Can I build chromium with ffmpeg to support all video formats?

Under version Qt5.2, I used QtWebView, it can call third-party extensions automatically to support video formats such as avi, mpeg, mov and flv. But when I upgraded to Qt5.10 and changed QtWebView to QtWebengineView, it worked differently and I couldn't call third-party extensions. If I want to modify chromium source with ffmpeg to support all video formats for QtWebengine, what should I do?

Upvotes: 3

Views: 13021

Answers (4)

Bitminer
Bitminer

Reputation: 1

Without -webengine-proprietary-codec -system-webengine-ffmpeg qtwebengine will support the following

audio codecs: opus, vorbis, flac.

video codecs: vc8, vc9.

QtWebEngine is able to play your videos if recode your videos like this:

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

Upvotes: 0

Allan Jensen
Allan Jensen

Reputation: 564

For QtWebEngine all you need to do is configure Qt to enable proprietary codecs using -proprietary-codecs (< Qt 5.12) or -webengine-proprietary-codecs (Qt 5.12+)

If you additional configure with -system-webengine-ffmpeg you will also use the system FFmpeg with all the codecs it supports. It still won't support any container formats Chrome doesn't though.

Upvotes: 1

Jerry
Jerry

Reputation: 146

You needn't to use ffmpeg to support all video formats.

Like Vladimir said, follow the official build instructions and the audio/video page.

@Vladimir: I don't think you can enable support of the video & audio formats that aren't supported by Google Chrome.

Yes, you can. We compile Chromium with all codecs (AVC/H.264, HEVC/H.265, MPEG-4...) and can open many other file types (MOV, AVI, MKV, M2TS...). Follow our instructions (GN flags) and you will be able to build Chromium with all codecs. HEVC/H.265 is more complex. Check Chromium binaries and file type checker. All is completely free and open-source. Do it yourself! ;)

Upvotes: 2

Vladimir
Vladimir

Reputation: 2277

If you are building Chromium using the official build instruction, then you just need to add the following options to the args.gn file:

proprietary_codecs=true
ffmpeg_branding="Chrome"

Upvotes: 1

Related Questions