Intel® Collaboration Suite for WebRTC
Community support and discussions on the Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC).
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646

关于H264

han_x_
Beginner
438 Views

测试条件:

1、服务端是Ubuntu 14.04,64位。按照文档部署好3.2.1,包括部署好libopenh264.so.0和修改video_agent/agent.toml文件中openh264Enbaled为true

2、在Windows8环境中用VS2015修改CS_WebRTC_Client_SDK_Windows.v3.2.1中的基本例子(即ConferenceSampleQt工程),修改视频编码为H264(mc.video_codec = MediaCodec::H264)。

3、chrome版本是53.0.2785.101 m (64-bit)。在启动chrome的时候添加参数--enable-features=WebRTC-H264WithOpenH264FFmpeg,或者在chrome://flags/中修改“WebRTC H.264 软件视频编码器/解码器”“已启动”

测试过程:

Windows环境中启动基本例子程序(ConferenceSampleQt.exe),视频发布成功。在chrome中可以看到Windows发布的码流画面。然后在chrome://webrtc-internals/中查看Windows发布的码流编码,GoogCodecName仍为VP8

请问我测试过程有问题吗?如何才能验证Windows发布的就是H264码流?

多谢!

0 Kudos
3 Replies
Lei_Z_Intel1
Employee
438 Views

Chrome默认还是选择VP8,需要在JS代码中显式设置H.264。

如果你是使用我们的sample页面,尝试按照如下步骤修改。

找到MCU下的文件extras/basic_example/public/script2.js做如下修改:

找到所有conference.publish() 和conference.subscribe()调用的地方:

对于publish调用, 第二个参数原来是个空的json, 现在改为{videoCodec: ‘h264’}

对于subscribe调用,第二个参数如果原来是{video: videoOpt}, 现在改为{video:videoOpt, videoCodec: ‘h264’}。

改完之后刷新chrome页面即可。

bin_li
Beginner
438 Views

hi Lei,

我按照你上面的修改步骤修改后,MCU在编码模式上仍然启用VP8,请问还有什么地方需要修改或者可以查看的相关配置?

2017-06-14 11:43:22,580  - DEBUG: mcu.media.MsdkVideoCompositor - unsetAvatar(0)
2017-06-14 11:43:22,581  - DEBUG: mcu.media.MsdkVideoCompositor - deActivateInput = 0
2017-06-14 11:43:22,581  - DEBUG: mcu.media.MsdkVideoCompositor - flush - wait 1(ms)
2017-06-14 11:43:22,582  - DEBUG: mcu.media.MsdkVideoCompositor - flush successfully after 1(ms)
2017-06-14 11:43:22,582  - DEBUG: mcu.media.MsdkVideoCompositor - Configuring layout
2017-06-14 11:43:22,582  - DEBUG: mcu.media.MsdkVideoCompositor - configChanged is true
2017-06-14 11:43:22,610  - DEBUG: mcu.media.MsdkVideoCompositor - commit customlayout
2017-06-14 11:43:22,610  - DEBUG: mcu.media.MsdkVideoCompositor - swap r <-> b, yuv 0x0, 0x80, 0x80 -> 0x0, 0x80, 0x80
2017-06-14 11:43:22,611  - DEBUG: mcu.media.MsdkVideoCompositor - configChanged sets to false after commitLayout!
2017-06-14 11:43:22,669  - DEBUG: woogeen.VCMFrameEncoder - (0x29347d0)degenerateStream(0)
2017-06-14 11:43:23,300  - DEBUG: woogeen.MsdkFrameEncoder - generateStream[0]: {.width=640, .height=480, .bitrateKbps=800}
2017-06-14 11:43:23,332  - DEBUG: woogeen.MsdkFrameDecoder - (0x22b42f0)Created H.264 deocder.
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - activateInput = 0
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - setAvatar(0) = avatar.180x180.yuv
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - Configuring layout
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - configChanged is true
2017-06-14 11:43:23,336  - DEBUG: mcu.media.MsdkVideoCompositor - commit customlayout
2017-06-14 11:43:23,336  - DEBUG: mcu.media.MsdkVideoCompositor - swap r <-> b, yuv 0x0, 0x80, 0x80 -> 0x0, 0x80, 0x80
2017-06-14 11:43:23,337  - DEBUG: mcu.media.MsdkVideoCompositor - configChanged sets to false after commitLayout!
2017-06-14 11:43:24,327  - INFO: woogeen.StreamEncoder - (0x22ba510)Do requeset key frame!
2017-06-14 11:43:24,335  - INFO: woogeen.RawTransport - Increasing the buffer size: 12528
2017-06-14 11:43:24,335  - DEBUG: woogeen.MsdkFrameDecoder - (0x22b42f0)Decode header successed after 0 frames!
2017-06-14 11:43:25,320  - INFO: woogeen.StreamEncoder - (0x22ba510)Do requeset key frame!
2017-06-14 11:43:25,329  - DEBUG: woogeen.MsdkFrameEncoder - degenerateStream[0]
2017-06-14 11:43:25,506  - DEBUG: woogeen.VCMFrameEncoder - (0x22bca80)Create encoder(VP8)
2017-06-14 11:43:25,513  - DEBUG: woogeen.VCMFrameEncoder - (0x22bca80)generateStream: {.width=640, .height=480, .bitrateKbps=800}, simulcastId=0
 

 

bin_li
Beginner
438 Views

Hi lei

按照你的修改建议后MCU在编码模式上仍然使用VP8,是否还有其它需要修改或者有哪些条件未满足?

2017-06-14 11:43:23,300  - DEBUG: woogeen.MsdkFrameEncoder - generateStream[0]: {.width=640, .height=480, .bitrateKbps=800}
2017-06-14 11:43:23,332  - DEBUG: woogeen.MsdkFrameDecoder - (0x22b42f0)Created H.264 deocder.
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - activateInput = 0
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - setAvatar(0) = avatar.180x180.yuv
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - Configuring layout
2017-06-14 11:43:23,332  - DEBUG: mcu.media.MsdkVideoCompositor - configChanged is true
2017-06-14 11:43:23,336  - DEBUG: mcu.media.MsdkVideoCompositor - commit customlayout
2017-06-14 11:43:23,336  - DEBUG: mcu.media.MsdkVideoCompositor - swap r <-> b, yuv 0x0, 0x80, 0x80 -> 0x0, 0x80, 0x80
2017-06-14 11:43:23,337  - DEBUG: mcu.media.MsdkVideoCompositor - configChanged sets to false after commitLayout!
2017-06-14 11:43:24,327  - INFO: woogeen.StreamEncoder - (0x22ba510)Do requeset key frame!
2017-06-14 11:43:24,335  - INFO: woogeen.RawTransport - Increasing the buffer size: 12528
2017-06-14 11:43:24,335  - DEBUG: woogeen.MsdkFrameDecoder - (0x22b42f0)Decode header successed after 0 frames!
2017-06-14 11:43:25,320  - INFO: woogeen.StreamEncoder - (0x22ba510)Do requeset key frame!
2017-06-14 11:43:25,329  - DEBUG: woogeen.MsdkFrameEncoder - degenerateStream[0]
2017-06-14 11:43:25,506  - DEBUG: woogeen.VCMFrameEncoder - (0x22bca80)Create encoder(VP8)
2017-06-14 11:43:25,513  - DEBUG: woogeen.VCMFrameEncoder - (0x22bca80)generateStream: {.width=640, .height=480, .bitrateKbps=800}, simulcastId=0

Reply