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

时间:2015-03-30 02:08:18

标签: webrtc

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

目前,Google的WebRTC实施是否支持H.264?

在线进行一些研究,我发现有计划并且它不受支持,但是 但是当我看到谷歌WebRTC的源代码时,我确实看到了一些关于H.264解码的内容:

test@lab:~/myWebRTC/src$ find . -name "h"  | xargs grep -i 264
...
./chromium/src/content/common/gpu/media/h264_decoder.h:  void ConstructReferencePicListsB(media::H264SliceHeader 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);

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

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

感谢。

2 个答案:

答案 0 :(得分:2)

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

一般情况下,Chrome不支持对webrtc进行H264编码,因为VP8是他们的主要免版税编解码器,并且回答了H264,其中有太多与专利相关的复杂问题。现在最近cisco发布了openh264 - https://github.com/cisco/openh264,这也是Firefox为支持H264而实现的。但是,我不会很快看到谷歌支持它,尤其是VP9即将推出。

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

答案 1 :(得分:0)

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

相关问题