letsfindaway / OpenBoard

I'm using this fork to contribute features and fixes to the upstream project. In order to create good pull requests, I'm rebasing my feature branches, squashing and reordering commits, etc. If you fork this repository be aware that my development branches may rewrite history without prior notice.
http://openboard.ch/
GNU General Public License v3.0
9 stars 0 forks source link

Some video players not working #113

Closed kaamui closed 1 year ago

kaamui commented 2 years ago

The test team is starting its review on your work ! They are quite happy with all the work you've done.

When I find time, I would like to discuss with you to understand what values some parameters expect, etc.

About this issue I'm reporting, here's a screenshot for a Vimeo test I made Capture d’écran de 2022-11-04 10-05-40

Audio is played, but no video (tested on Ubuntu, with a Qt 6.4.0 build).

On HTML5 Videos, some pages work, some don't. Testing this page : https://www.w3schools.com/html/html5_video.asp, the video won't play at all

Capture d’écran de 2022-11-04 10-24-51

No issue testing this page => https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video

Tested on Ubuntu with a Q 6.4.0 build. No issues on YouTube videos.

Could it be related to the user agent we use ? A Qt issue ? Do you have any clue of what could be involved here ?

letsfindaway commented 2 years ago

For me, https://vimeo.com/755280751 and even https://www.w3schools.com/html/html5_video.asp works as expected. First asking for Cookie consent, then nicely playing the video including sound.

I also have that 400 response on vimeo when trying to access api.branch.io, so this is not the reason.

kaamui commented 2 years ago

For me, https://vimeo.com/755280751 and even https://www.w3schools.com/html/html5_video.asp works as expected. First asking for Cookie consent, then nicely playing the video including sound.

Cookie consent ? When is it asking it ? Didn't notice it on my side. Can you share a screenshot so I see what you're talking about ? Because I don't have it either on Firefox (Ubuntu), so maybe there is something specific on OpenSuse regarding that

letsfindaway commented 2 years ago

Here a screenshot: grafik But interestingly, I also don't have it on Firefox, but it appears on Chromium (both openSUSE Leap 15.4).

letsfindaway commented 2 years ago

The test team is starting its review on your work ! They are quite happy with all the work you've done.

Nice to hear :)

When I find time, I would like to discuss with you to understand what values some parameters expect, etc.

Of course. Just contact me.

About this issue I'm reporting,...

Do you think could this be a codec problem, also related to the way how QWebEngine libraries are built? See https://doc.qt.io/qt-6/qtwebengine-features.html#audio-and-video-codecs.

kaamui commented 2 years ago

https://bugreports.qt.io/browse/QTBUG-97926

I'm afraid you're right.

letsfindaway commented 2 years ago

So what does this now mean. The pre-built installers downloaded from Qt have proprietary codecs disabled. Depending on the target platform there are now several cases and options:

Linux

On Linux it depends whether we want to use the WebEngine provided by the distribution or we want to package our own. If we use the one from the distribution, then it depends on how this was build.

On openSUSE the proprietary codecs are enabled. Here from the spec file for Qt6. Same for Qt5.

%cmake_qt6 \
  -DCMAKE_TOOLCHAIN_FILE:STRING="%{_qt6_cmakedir}/Qt6/qt.toolchain.cmake" \
  -DFEATURE_printer:BOOL=ON \
  -DFEATURE_qtpdf_build:BOOL=ON \
  -DFEATURE_webengine_developer_build:BOOL=OFF \
  -DFEATURE_webengine_embedded_build:BOOL=OFF \
  -DFEATURE_webengine_extensions:BOOL=ON \
  -DFEATURE_webengine_kerberos:BOOL=ON \
  -DFEATURE_webengine_native_spellchecker:BOOL=OFF \
  -DFEATURE_webengine_system_libevent:BOOL=ON \
  -DFEATURE_webengine_webrtc:BOOL=ON \
  -DFEATURE_webengine_webrtc_pipewire:BOOL=ON \
  -DFEATURE_webengine_system_icu:BOOL=%{_use_system_icu} \
%if %{with system_ffmpeg}
  -DFEATURE_webengine_system_ffmpeg:BOOL=ON \
  -DFEATURE_webengine_proprietary_codecs:BOOL=ON \
%endif
  -DQT_BUILD_EXAMPLES:BOOL=OFF

This means in the end that Qt relies on the platform ffmpeg and can use all codecs installed for ffmpeg.

On Debian and therefore also for Ubuntu we should have a similar situation. See https://sources.debian.org/src/qtwebengine-opensource-src/5.15.10%2Bdfsg-7/debian/rules/#L40. Here I do not see the system_ffmpeg flag. I haven't found a clear description, but probably this means that it relies on gstreamer and its plugins.

I assume that most other distributions also built it with that flag - when even Debian does it, which is sometimes quite strict on such things.

Windows

Here I assume you will have to build at least QtWebEngine by yourself. You find some instructions when you search for "qtwebengine windows proprietary codec".

MacOS

Probably same situation as on Windows. See here https://forum.qt.io/topic/100816/qtwebengine-5-12-2-compiling-from-source-mac-os-x-with-webengine-proprietary-codecs-not-working/2 for some instructions.

But...

as I can see from your screenshot, you are on Ubuntu when this happens. Here I would have assumed that it works, if your ffmpeg or gstreamer contains the proprietary codecs. So the exact boundary conditions for that still have to be determined.

kaamui commented 2 years ago

I use the pre-built binairies provided by Qt, where proprietary codecs are probably not enabled, indeed.

kaamui commented 1 year ago

No more issues with proprietary codecs enabled.