Page 1 of 3

Can't show H264 videos

PostPosted: Tue Jun 26, 2018 8:32 am
by kappadielle
I found a lot of guide to enable H264 support on Cef browser and zero for JCEF, then I am not able to make it work... is there someone handy to help me? :cry:

Re: Can't show H264 videos

PostPosted: Tue Jun 26, 2018 9:32 am
by ndesktop
You need to compile CEF with proprietary codecs support.
This can be done with vanilla automate-git.py by defining GN_DEFINES to include proprietary_codecs=true ffmpeg_branding=Chrome.

Re: Can't show H264 videos

PostPosted: Tue Jun 26, 2018 10:26 am
by kappadielle
I saw that, but I don't understand how to do this for Java-Cef because the procedure seems different. for example, I can't find automate-git.py. Can you explain how to do it pratically?

Re: Can't show H264 videos

PostPosted: Tue Jun 26, 2018 11:04 am
by ndesktop
automate-git.py is on this page.
But this is for C++ build, now I realized you need Java.

I don't know how Java-Cef build work, but I suppose you need to manually tweak the stp 1 (Manual building).

Re: Can't show H264 videos

PostPosted: Sat Dec 08, 2018 5:47 am
by rivolt80
Why it has to be different for JCEF? I mean it is the underlying Chromium that needs to be built with proprietary codecs. Once we get the build, it should be a matter of replacing native dlls. And then Java-cef too should support H.264. Am I wrong?

Re: Can't show H264 videos

PostPosted: Mon Dec 10, 2018 2:17 am
by ndesktop
The build procedure for JCEF might have generated makefile things dependent on native CEF.
I don't know if you can build CEF with configuration X, then build JCEF with Y, and glue them alltogether and expect to work.

But as I said, I am very far from being an expert on JCEF. If the documentation does not state this is possible, you can either (1) try out and see if you can bind a codec-enabled CEF build with a JCEF build (related only by the source code compatibility), or (2) build CEF then JCEF in a single step (don't know if there are scripts to do that) from the same codebase.

Re: Can't show H264 videos

PostPosted: Mon Dec 10, 2018 11:36 am
by rivolt80
Maybe the maintainers could shed some light. Hello awesome people. Can we build JCEF with proprietary codecs? If yes, what would be the procedure?

Re: Can't show H264 videos

PostPosted: Mon Dec 10, 2018 12:47 pm
by magreenblatt
rivolt80 wrote:Maybe the maintainers could shed some light. Hello awesome people. Can we build JCEF with proprietary codecs? If yes, what would be the procedure?

Yes, you can.

1. Build CEF locally with proprietary codecs enabled as described above.
2. Create a CEF binary distribution from your local build.
3. Modify the JCEF top-level CMakeLists.txt file to use your locally created binary distribution (set CEF_VERSION, and copy the binary distribution folder to the third_party/cef directory).

Re: Can't show H264 videos

PostPosted: Thu Apr 18, 2019 7:57 am
by quadlex
magreenblatt wrote:
rivolt80 wrote:Maybe the maintainers could shed some light. Hello awesome people. Can we build JCEF with proprietary codecs? If yes, what would be the procedure?

Yes, you can.

1. Build CEF locally with proprietary codecs enabled as described above.
2. Create a CEF binary distribution from your local build.
3. Modify the JCEF top-level CMakeLists.txt file to use your locally created binary distribution (set CEF_VERSION, and copy the binary distribution folder to the third_party/cef directory).


Could you describe it in more detail, please, if it's not difficult for you?

Re: Can't show H264 videos

PostPosted: Tue Apr 23, 2019 5:53 am
by quadlex
magreenblatt wrote:
rivolt80 wrote:Maybe the maintainers could shed some light. Hello awesome people. Can we build JCEF with proprietary codecs? If yes, what would be the procedure?

Yes, you can.

1. Build CEF locally with proprietary codecs enabled as described above.
2. Create a CEF binary distribution from your local build.
3. Modify the JCEF top-level CMakeLists.txt file to use your locally created binary distribution (set CEF_VERSION, and copy the binary distribution folder to the third_party/cef directory).



When building CEF locally at step 8, when i run command "ninja -C out\Debug_GN_x64 cef" after ~ 3h building its fails with error:

Code: Select all
D:\CEF\chromium_git\chromium\src>ninja -C out\Debug_GN_x64 cef
ninja: Entering directory `out\Debug_GN_x64'
[1/5] LINK(DLL) libcef.dll libcef.dll.lib libcef.dll.pdb
FAILED: libcef.dll libcef.dll.lib libcef.dll.pdb
ninja -t msvc -e environment.x64 -- ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo /IMPLIB:./libcef.dll.lib /DLL /OUT:./libcef.dll /PDB:./libcef.dll.pdb @./libcef.dll.rsp
Failure value returned from cantFail wrapped call
UNREACHABLE executed at C:\b\rr\tmpswcnjy\w\src\third_party\llvm\include\llvm/Support/Error.h:707!
Stack dump:
0.      Program arguments: ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo /IMPLIB:./libcef.dll.lib /DLL /OUT:./libcef.dll /PDB:./libcef.dll.pdb @./libcef.dll.rsp
 #0 0x00007ff761c23846 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x13846)
 #1 0x00007ff763d2741c (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x211741c)
 #2 0x00007ff763d22368 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x2112368)
 #3 0x00007ff761c2a7e7 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x1a7e7)
 #4 0x00007ff763acb576 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x1ebb576)
 #5 0x00007ff763ac86a4 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x1eb86a4)
 #6 0x00007ff761f53f58 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x343f58)
 #7 0x00007ff761ccc638 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0xbc638)
 #8 0x00007ff761cb94f8 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0xa94f8)
 #9 0x00007ff761cb247d (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0xa247d)
#10 0x00007ff761c78c30 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x68c30)
#11 0x00007ff761c6f511 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x5f511)
#12 0x00007ff761c1143e (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x143e)
#13 0x00007ff763cfa2f4 (D:\CEF\chromium_git\chromium\src\third_party\llvm-build\Release+Asserts\bin\lld-link.exe+0x20ea2f4)
#14 0x00007ffd6b631fe4 (C:\WINDOWS\System32\KERNEL32.DLL+0x11fe4)
#15 0x00007ffd6c32f061 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6f061)
ninja: build stopped: subcommand failed.


What could be the problem?