webrtc Native C++视频旋转/裁减/绿屏问题

场景:手机采集1280x720视频,推流到服务器,pc端拉流后显示

一、绿屏和裁减现象
1.1绿屏现象
1.2裁减问题
二、出现绿屏和裁减现象的原因
三、如何防止这两个现象
3.1webrtc中相关宏
3.2在接收函数中处理

一、绿屏和裁减现象
1.1绿屏现象
首先看下绿屏幕,在右边有一条竖的绿条:
webrtc Native C++视频旋转/裁减/绿屏问题_第1张图片1.2裁减问题
手机端采集的包含整个显示器,pc拉流后播放的只含部分,webrtc自动对收到的视频进行了裁减。
webrtc Native C++视频旋转/裁减/绿屏问题_第2张图片
二、出现绿屏和裁减现象的原因
webrtc只支持16:9和4:3规格的视频,当pc端的webrtc把流拉来解码后做了裁减。把手机横屏采集,竖向代表高,横向代表宽,采集1280x720视频。此时pc端的webrtc会把手机的高也就是720当作宽,因为720不是64的倍数,因此进行字节补齐到768,768-720=48也就是上图绿条的宽度。然后webrtc按照16:9再裁减出来高:(768/16)*9=432。因此一个1280x720的视频源在解码后被裁减成了768x432。产生了绿条和不完整现象。
三、如何防止这两个现象
如何防止这个现象呢,我们需要做一个旋转,把1280当做宽而不是720当作宽。
如何旋转

你可能感兴趣的:(webrtc,webrtc,音视频,绿屏裁减,旋转,ffmpeg)