在尝试在线研究后,我仍然不确定,因为我需要更新的答案(因为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选项?
谢谢.
最佳答案 您所看到的只是解码H264的代码,这是非webrtc相关视频recv /解码所需要的.
一般来说,Chrome不支持用于webrtc的H264编码,因为VP8是他们的主要免版税编解码器和H264的答案,其中涉及太多与专利相关的复杂问题.现在最近cisco发布了openh264 – https://github.com/cisco/openh264,这也是Firefox为支持H264而实现的.但是,我不认为谷歌会很快支持它,尤其是VP9即将推出.
理想情况下,如果您可以访问设备上的原始视频帧,然后自己在VP8中对其进行编码;通过webrtc获取视频会更容易.