Google WebRTC 的实现是否支持 H.264

Does Google implementation of the WebRTC support H.264 or not

尝试在线研究后,我仍然不确定,因为我需要更新的答案(因为 WebRTC 不断变化):

现在,WebRTC 的 Google 实现是否支持 H.264?

在网上做了一些研究,我看到有计划但不支持,但是 但是当我看到 google WebRTC 的源代码时,我确实看到了一些关于 H.264 解码的内容:

<pre> test@lab:~/myWebRTC/src$ find . -name "<em>h" | xargs grep -i 264 ... ./chromium/src/content/common/gpu/media/h264_decoder.h: void ConstructReferencePicListsB(media::H264SliceHeader</em> slice_hdr); ./chromium/src/content/common/gpu/media/h264_decoder.h: int PicNumF(const scoped_refptr& pic); ./chromium/src/content/common/gpu/media/h264_decoder.h: int LongTermPicNumF(const scoped_refptr& pic); ./chromium/src/content/common/gpu/media/h264_decoder.h: bool ModifyReferencePicList(media::H264SliceHeader* slice_hdr, ./chromium/src/content/common/gpu/media/h264_decoder.h: H264Picture::Vector* ref_pic_listx); ./chromium/src/content/common/gpu/media/h264_decoder.h: bool StartNewFrame(media::H264SliceHeader* slice_hdr); ./chromium/src/content/common/gpu/media/h264_decoder.h: void OutputPic(scoped_refptr pic); ./chromium/src/content/common/gpu/media/h264_decoder.h: media::H264Parser parser_; ./chromium/src/content/common/gpu/media/h264_decoder.h: H264DPB dpb_; ./chromium/src/content/common/gpu/media/h264_decoder.h: scoped_refptr curr_pic_; ./chromium/src/content/common/gpu/media/h264_decoder.h: H264Picture::Vector ref_pic_list_p0_; ./chromium/src/content/common/gpu/media/h264_decoder.h: H264Picture::Vector ref_pic_list_b0_; ./chromium/src/content/common/gpu/media/h264_decoder.h: H264Picture::Vector ref_pic_list_b1_; ./chromium/src/content/common/gpu/media/h264_decoder.h: H264Picture::Field prev_ref_field_; ./chromium/src/content/common/gpu/media/h264_decoder.h: scoped_ptr curr_nalu_; ./chromium/src/content/common/gpu/media/h264_decoder.h: scoped_ptr curr_slice_hdr_; ./chromium/src/content/common/gpu/media/h264_decoder.h: H264Accelerator* accelerator_; ./chromium/src/content/common/gpu/media/h264_decoder.h: DISALLOW_COPY_AND_ASSIGN(H264Decoder); </pre>

我的目标是我需要一个带有编码 H.264 的嵌入式设备 使用WebRTC流出。

所以,我想知道 Google WebRTC 是否是一个选项, 还是 OpenWebRTC 是我此时 H.264 的唯一选择?

谢谢。

您看到的只是用于解码非 webrtc 相关视频所需的 H264 代码 recv/decoding。

一般来说,Chrome 不支持 webrtc 的 H264 编码,只是因为 VP8 是他们主要的免版税编解码器,并且是对 H264 的回应,H264 有太多与专利相关的并发症。最近 cisco 发布了 openh264 - https://github.com/cisco/openh264 这也是 Firefox 为支持 H264 而实现的。但是,我认为 Google 短期内不会支持它,尤其是在 VP9 即将推出的情况下。

理想情况下,如果您可以访问设备上的原始视频帧,然后自己在 VP8 中对其进行编码;通过 webrtc 播放视频会容易得多。

由于浏览器中的编解码器在理论上可以来来去去,也许您应该考虑在另一端转换(转码)视频(听起来您需要 H.264,因为那是另一端正在处理的内容)。这样,您就无需关心浏览器在任何时候协商的编解码器。