谷歌的WebRTC实现是否支持H.264

谷歌的WebRTC实现是否支持H.264,webrtc,Webrtc,在尝试在线研究之后,我仍然不确定,因为我需要一个更及时的答案(因为WebRTC不断变化): 现在,WebRTC的Google实现是否支持H.264 在网上做了一些研究,我发现有计划这样做,但不受支持,但是 但当我看到google WebRTC的源代码时,我确实看到了一些关于H.264解码的内容: test@lab:~/myWebRTC/src$find-名称“h”| xargs grep-i 264 ... ./chromium/src/content/common/gpu/media/h26

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

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

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


test@lab:~/myWebRTC/src$find-名称“h”| xargs grep-i 264
...
./chromium/src/content/common/gpu/media/h264_decoder.h:void-constructureferencepiclistsb(media::h264切片头切片\u hdr);
./chromium/src/content/common/gpu/media/h264_解码器。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(媒体::h264切片头*切片hdr,
./chromium/src/content/common/gpu/media/h264_decoder.h:h264图片::Vector*ref_pic_listx);
./chromium/src/content/common/gpu/media/h264_decoder.h:bool StartNewFrame(媒体::h264切片头*切片hdr);
./chromium/src/content/common/gpu/media/h264_decoder.h:void OutputPic(有范围的_refptr pic);
./chromium/src/content/common/gpu/media/h264_解码器;
./chromium/src/content/common/gpu/media/h264_解码器;
./chromium/src/content/common/gpu/media/h264_decoder.h:scoped_refptr curr_pic;
/chromium/src/content/common/gpu/media/h264_解码器。h:h264图片::矢量参考图片列表;
/chromium/src/content/common/gpu/media/h264_decoder.h:h264图片::矢量参考图片列表;
/chromium/src/content/common/gpu/media/h264_解码器。h:h264图片::矢量参考图片列表;
./chromium/src/content/common/gpu/media/h264_decoder.h:h264图片::字段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_解码器。h:h264加速器*加速器;
./chromium/src/content/common/gpu/media/h264_解码器。h:不允许复制和分配(h264解码器);

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

所以,我想知道Google WebRTC是否是一个选项, 或者OpenWebRTC是目前H.264的唯一选项


谢谢。

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

一般来说,Chrome不支持webrtc的H264编码,只是因为VP8是其主要的免版税编解码器,并且是H264的答案,而H264有太多与专利相关的复杂问题。最近cisco发布了openh264,Firefox也实现了openh264。然而,我不认为谷歌会很快支持它,尤其是随着VP9的到来


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

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

目前还没有任何Chrome版本。互联网上的一些常规html5视频使用h264(youtube使用),这可能解释了解码器的功能。但chrome不支持H264的实时webrtc流媒体Firefox支持webrtc中的H.264,但您必须修改SDP。请看这张特定于Firefox的图片。在过去的一年左右的2017年中,除了VP8/9之外,Chrome还在打包模式1中支持h.264。Chromium使用openh264进行编码,使用ffmpeg进行解码。 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);