Closed bugz8unny69 closed 6 years ago
You have installed that library using "sudo" or "root" right? Try to chown libwidevinecdm.so to your username. It plays fine here. It will only load when you will play a drm video. Tell me if it works after chown or not.
Note: DRM videos are not hardware accelerated unfortunately. :(
Unfortunately, not working here:
ll /usr/lib64/chromium-browser/libwidevinecdm.so
-rw-r--r--. 1 owner owner 6947604 Sep 15 01:00 /usr/lib64/chromium-browser/libwidevinecdm.so
[owner@localhost chrome]$ id
uid=1000(owner) gid=1000(owner) groups=1000(owner),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
chromium-libs-69.0.3497.81-200.fc28.chromium_vaapi.x86_64
chromium-69.0.3497.81-200.fc28.chromium_vaapi.x86_64
chromium-libs-media-69.0.3497.81-200.fc28.chromium_vaapi.x86_64
chromium-libs-media-freeworld-69.0.3497.81-200.fc28.chromium_vaapi.x86_64
Name : chromium
Version : 69.0.3497.81
Release : 200.fc28.chromium_vaapi
Architecture: x86_64
Install Date: Tue 11 Sep 2018 01:13:07 PM EDT
Group : Unspecified
Size : 125470214
License : BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
Signature : (none)
Source RPM : chromium-69.0.3497.81-200.fc28.chromium_vaapi.src.rpm
Build Date : Sun 09 Sep 2018 04:37:09 AM EDT
Build Host : copr-builder-497926869.novalocal
Relocations : (not relocatable)
URL : https://www.chromium.org/Home
Summary : A WebKit (Blink) powered web browser with video acceleration
Description :
Chromium is an open-source web browser, powered by WebKit (Blink).
chromium-browser --ppapi-out-of-process --register-pepper-plugins="libwidevinecdm.so;application/x-ppapi-widevine-cdm"
Run this on terminal play a drm video and attach a log here please.
Thanks for helping me with this.
chromium-browser --ppapi-out-of-process --register-pepper-plugins="libwidevinecdm.so;application/x-ppapi-widevine-cdm"
mesa: for the -simplifycfg-sink-common option: may only occur zero or one times!
[17394:17394:0915/121757.964516:ERROR:sandbox_linux.cc(379)] InitializeSandbox() called with multiple threads in process gpu-process.
[1:1:0915/121800.087563:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Nothing useful after attempting to play a DRM video. I've also went ahead and enable verbose logging here: chrome.log
I tried this as well:
[owner@localhost ~]$ file /usr/lib64/chromium-browser/libwidevinecdm.so
/usr/lib64/chromium-browser/libwidevinecdm.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=b463ef32ca4e94c72ee04f6b19b34556e4ab2910, stripped
[owner@localhost chrome]$ strace -e openat,stat -fff chromium-browser --ppapi-out-of-process --register-pepper-plugins="/usr/lib64/chromium-browser/libwidevinecdm.so;application/x-ppapi-widevine-cdm" 2> ~/chrome.log
The libwidevinecdm.so
library I grabbed from chrome64_68.0.3440.84
.
It looks like it actually open the file:
[pid 21698] openat(AT_FDCWD, "/usr/lib64/chromium-browser/libwidevinecdm.so", O_RDONLY|O_CLOEXEC) = 344
Tried again with another version of libwidevinecdm.so
from google-chrome-stable-69.0.3497.92-1.x86_64
:
file /opt/google/chrome/libwidevinecdm.so
/opt/google/chrome/libwidevinecdm.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=221066b4d1172114ad4e685d19de25fb1fb514b9, stripped
chromium-browser --ppapi-out-of-process --register-pepper-plugins="/usr/lib64/chromium-browser/libwidevinecdm.so;application/x-ppapi-widevine-cdm"
mesa: for the -simplifycfg-sink-common option: may only occur zero or one times!
[31169:31169:0915/123848.963301:ERROR:sandbox_linux.cc(379)] InitializeSandbox() called with multiple threads in process gpu-process.
[1:1:0915/123851.051636:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Tried this for good measure, by disabling extensions:
chromium-browser --ppapi-out-of-process --register-pepper-plugins="/usr/lib64/chromium-browser/libwidevinecdm.so;application/x-ppapi-widevine-cdm" --disable-extensions
mesa: for the -simplifycfg-sink-common option: may only occur zero or one times!
[2569:2569:0915/124423.643963:ERROR:sandbox_linux.cc(379)] InitializeSandbox() called with multiple threads in process gpu-process.
[1:1:0915/124426.129289:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124426.622820:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124426.850281:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
[1:1:0915/124426.893705:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124426.936959:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124427.073403:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124427.393597:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124429.775314:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124430.385222:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124430.518386:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124430.637839:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124430.800823:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124430.970671:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.191272:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.506124:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.562714:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.589740:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.623187:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.649664:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.747750:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124431.881012:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124432.048201:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124432.220776:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124432.394892:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124432.525883:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124432.708097:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0915/124432.817800:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler* blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
:(
All tests were done, after attempting to play a DRM protected video.
EDIT: I installed EME Call and Event Logger
and here is the log:
EME Method Call and Event Log
Clear log
RequestMediaKeySystemAccessCall 12:55:16:611
target:
Navigator {
listenersAdded_: true
}
returned: Promise{}
keySystem: com.widevine.alpha
supportedConfigurations: [
distinctiveIdentifier: not-allowed
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE]
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]]
RequestMediaKeySystemAccessCall Promise Result 12:55:16:617
status: rejected
args: [com.widevine.alpha, [
distinctiveIdentifier: not-allowed
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE]
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]]]
result: DOMException{}
RequestMediaKeySystemAccessCall 12:55:16:930
target:
Navigator {
listenersAdded_: true
}
returned: Promise{}
keySystem: com.widevine.alpha
supportedConfigurations: [
distinctiveIdentifier: not-allowed
initDataTypes: [cenc]
persistentState: required
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE],
distinctiveIdentifier: not-allowed
initDataTypes: [cenc]
persistentState: required]
RequestMediaKeySystemAccessCall Promise Result 12:55:17:71
status: rejected
args: [com.widevine.alpha, [
distinctiveIdentifier: not-allowed
initDataTypes: [cenc]
persistentState: required
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE],
distinctiveIdentifier: not-allowed
initDataTypes: [cenc]
persistentState: required]]
result: DOMException{}
RequestMediaKeySystemAccessCall 12:55:19:818
target:
Navigator {
listenersAdded_: true
}
returned: Promise{}
keySystem: com.widevine.alpha
supportedConfigurations: [
initDataTypes: [cenc]
persistentState: required
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_CRYPTO],
initDataTypes: [cenc]
persistentState: required]
RequestMediaKeySystemAccessCall Promise Result 12:55:19:828
status: rejected
args: [com.widevine.alpha, [
initDataTypes: [cenc]
persistentState: required
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_CRYPTO],
initDataTypes: [cenc]
persistentState: required]]
result: DOMException{}
RequestMediaKeySystemAccessCall 12:55:20:709
target:
Navigator {
listenersAdded_: true
}
returned: Promise{}
keySystem: com.widevine.alpha
supportedConfigurations: [
initDataTypes: [cenc]
persistentState: required
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_CRYPTO],
initDataTypes: [cenc]
persistentState: required]
RequestMediaKeySystemAccessCall Promise Result 12:55:20:710
status: rejected
args: [com.widevine.alpha, [
initDataTypes: [cenc]
persistentState: required
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_CRYPTO],
initDataTypes: [cenc]
persistentState: required]]
result: DOMException{}
PlayCall 12:55:21:72
target:
HTMLVideoElement {
id:
classes:
}
returned: Promise{}
PlayEvent 19:0:6:394
event:
Event {
isTrusted: true
}
target:
HTMLVideoElement {
id:
classes:
}
PlayCall 12:55:21:87
target:
HTMLVideoElement {
id:
classes:
}
returned: Promise{}
PlayCall 12:55:21:88
target:
HTMLVideoElement {
id:
classes:
}
returned: Promise{}
PlayCall Promise Result 12:55:21:88
status: resolved
args: Array{}
PlayCall Promise Result 12:55:21:88
status: resolved
args: Array{}
PlayCall Promise Result 12:55:21:88
status: resolved
args: Array{}
RequestMediaKeySystemAccessCall 12:55:24:292
target:
Navigator {
listenersAdded_: true
}
returned: Promise{}
keySystem: com.widevine.alpha
supportedConfigurations: [
initDataTypes: [cenc]
persistentState: required
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_CRYPTO],
initDataTypes: [cenc]
persistentState: required]
RequestMediaKeySystemAccessCall Promise Result 12:55:24:294
status: rejected
args: [com.widevine.alpha, [
initDataTypes: [cenc]
persistentState: required
audioCapabilities: [
contentType: audio/mp4; codecs="mp4a.40.5"
robustness: SW_SECURE_CRYPTO]
videoCapabilities: [
contentType: video/mp4; codecs="avc1.640028"
robustness: HW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_DECODE,
contentType: video/mp4; codecs="avc1.640028"
robustness: SW_SECURE_CRYPTO],
initDataTypes: [cenc]
persistentState: required]]
result: DOMException{}
I am not sure if this is relevant: status: rejected
EDIT: here is a screen shot:
I think widevine is already on rpmfusion https://gitlab.com/greysector/widevine-cdm/blob/master/widevine-cdm.spec
From the logs I can see that it is not trying to open libwidevinecdm.so at all which is weird. Widevine is not officially supported in chromium nor it's license allows us to redistribute. What we are doing is hacking the chromium to support widevine. I will look at this tomorrow and maybe fix it in the next update (hopefully).
Meanwhile remove the libwidevinecdm.so from the chromium-desktop folder in /usr/lib64 and try to install widevine-cdm from rpmfusion. If everything fails, Try to remove it( won't delete your settings) and install the package that I will provide you tomorrow.
My package will eventually come to rpmfusion in the future by the name "chromium-vaapi".
I use Chrome Sync, I'm not worried about losing settings. Let me try what you've suggested and report back soon.
EDIT: widevine-cdm
is not available in RPMFusion repo. I can build the package myself?
EDIT: I manually built the widevine-cdm
package and installed it. Unfortunately, still a dud. I'll be waiting for the new package.
https://www.4shared.com/file/HoXw2mc5da/chromium-vaapi-690349792-171x8.html
Download it from here and copy libwidevinecdm.so as you did earlier.
Sorry about the Delay, installing now and I'll report back!
Allright, without any special command line arguments, this time it open libwidevinecdm.so
with without much effort. See:
chrome.log.
I used libwidevinecdm.so
from https://gitlab.com/greysector/widevine-cdm/blob/master/widevine-cdm.spec. However it failed with:
I will be testing with other versions of libwidevinecdm.so
and let you know how it goes.
Allright, thanks for your amazing effort, I got it to work with libwidevinecdm.so
from chrome64_68.0.3440.84
. See, https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1652110/comments/12. It appears libwidevinecdm.so
can break if it's earlier than the release of Chromium currently running.
EDIT: It would be nice if you signed your packages and 4shared is the worst file sharing service to use. It requires one to share personal information.
It will be available as signed in the future. Alright, issue solved. Closing.
Hello,
As usual when I often need to play DRM protected content. I simply install Google Chrome and copy over libwidevinecdm.so to /usr/lib64/chromium-browser. Unfortunately, it seems to me, this build of Chromium is not looking for libwidevinecdm.so at all. Am I missing something?