Where does Chrome insert its own h264 hardware encoder?
Reported by
martid0...@gmail.com,
May 8 2017
|
|||||
Issue descriptionOut of the box, the only form of h264 encoding support is through Cisco's openh264. However, I'm trying to use WebRTC in an embedded system which has a hardware encoder. There's presumably some form of support for plugging in your own encoder, since I assume that's what Chrome does, but I'm having a hard time finding where and how. I have found Chromium's VideoEncodeAccelerator, and its subclass V4L2VideoEncodeAccelerator (https://chromium.googlesource.com/chromium/src/media/+/master/gpu/v4l2_video_encode_accelerator.h) which sounds relevant. I also found RTCVideoEncoder (https://chromium.googlesource.com/chromium/src/+/master/content/renderer/media/gpu/rtc_video_encoder.h) which subclasses webrtc::VideoEncoder and thus sounds very relevant. However, I can't find any way the two are linked, or any mention of RTCVideoEncoder or V4L2VideoEncodeAccelerator in places which seem relevant. What am I missing? Could anyone give me a pointer to how to make my own video encoder?
,
May 15 2017
,
May 15 2017
,
May 16 2017
+emircan, who might be able to give some input.
,
May 16 2017
You are on the right track. You need to make an implementation of webrtc::VideoEncoder, like RTCVideoEncoder, and make a factory that creates it. Specifically, |external_encoder_factory_| field should point to your class below. https://cs.chromium.org/chromium/src/third_party/webrtc/media/engine/webrtcvideoengine2.cc?rcl=b2a88552d51ffeb5f3159f65fafa12cab912c4de&l=1728
,
May 22 2017
,
Jul 25 2017
Archiving this. No activity for a couple months and it is more of a question than a bug. Feel free to reopen or reach out if there are more questions. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by martid0...@gmail.com
, May 8 2017