-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request to test hardware transcoding #429
Comments
Hello, Docker-compose:
Server.xml and log: When I setup other container with nvidia-docker it's working correctly.
Oven isn't supporting ABR in HLS/DASH/WebRTC? |
And streams transcoded by software transcoder
it's not playing smoothly with WebRTC in Chrome (91.0.4472.124) and unplayable in Firefox (89.0.2). |
@fcqpl |
I want to say thank you for your review. As you checked the attached log, there are missing Hardware Codec related options when building Docker. Rebuild and run the Dockerfile.nv script from the root path of the GitHub source. and.. To enable hardware codecs, the HardwareAcceleration option must be enabled as true under OutputProfiles.
Thanks |
Hello,
This versions works correctly:
It's like slowed playback? Here is record: Transcoding on build from Dockerfile.nv propably works correctly for playback by HLS and WebRTC.
|
@fcqpl |
Yeah, mp4 files is recorded from transport=tcp. |
Hi,
ffmpeg with hevc_nvenc works correctly with my GPU.
|
And also - there is no support for HW encoding in code on github? |
Of course, the github master contains the hardware encoding source code. It's a small mistake. Dockerfile.nv had an invalid OME source path. I modified it and committed it again. If you recreate the image with the updated Dockerfile, HEVC encoding will work. Thanks. |
I'll test HEVC on Tuesday (waiting for new GPU).
|
@fcqpl That's a good idea. I'll add a task to our backlog for adding the |
Other GPU supports NVENC H265, but I have same error:
ffmpeg with nvenc_hevc works correctly. |
Here is defined bad codec name: https://github.com/AirenSoft/OvenMediaEngine/blob/master/src/projects/transcoder/codec/encoder/encoder_hevc.cpp But after changing i got another error:
|
Thank you very much for your excellent report. Please let me know what your test environment is. (OS, VM or Docker, Graphics Card) If you have time, could you activate the Transcoder tag to debug in Logger.xml and send me the full log? I'm going to reproduce it in the same environment. Thanks! |
Hello,
I added to Logger.xml but it doesn't print anything new. |
Thanks for the detailed information. Based on the log you sent, the problem has been corrected and committed. The problem was caused by improperly formatting the HEVC encoded bitstream. I have confirmed that it works normally with the NVIDIA 1060 graphics card. Please test again, and if there are additional problems, please report to me. Thanks :) |
Awesome! |
I tested it with QSV. Believe me, it wasn't easy. I compiled it from source code using provided manuals. For me, software transcoding uses 120% CPU (I got 8 core i7-9700k) which is about 1/7th of the total power. Hardware acceleration enabled reduces this to 55%. However, QSV has limits. I managed to do the following: ffmpeg -re -i bbb_sunflower_1080p_30fps_normal.mp4 -c:v copy -an -f flv rtmp://fr.xxxxxx.com/app/big1 And transcoded video from big1 or big10 via WebRTC was slow, almost like can't transcode in realtime. I canceled big10 and limited it to 9 transcodes (1080p in, 720p 1200 Kbit/s out) and it was working fine. I thought QSV had more juice in it? Also, it still manages to use some CPU, which is odd? I mean, it should use fewer CPU cycles when you opt in for QSV. At least this is the case for ffmpeg 4.4. I wonder if we can somehow fall back to software to max out server capacity by using QSV + Software x264 at the same time? Do we need to create new profiles and send let's say 9 videos from qsv enabled /appqsv/streamnames and 4 or 5 videos from software only /appsoftware/streamnames? Is this even possible with the current config file? Also, while it uses 55% for one transcode, and 110% cpu for 2 transcodes, it never went above 300% with 10, and it was 330% with 9 transcodes. Which is weird. |
OME now has hardware transcoding capabilities. You can try this feature in the latest master branch. Please refer to the manual below for details.
https://airensoft.gitbook.io/ovenmediaengine/v/master/transcoding/gpu-usage
We welcome all comments, such as bugs, improvements, and issues in the manual.
Your comments on this thread will help a lot in improving OvenMediaEngine.
Thank you for your contribution.
The text was updated successfully, but these errors were encountered: