我在用 WebRTC 做一个视频通话功能,本地和远程视频流都能正常显示,但视频画面总是被拉伸填满容器,人脸看起来特别宽。我试过给 video 标签加 object-fit: cover,但好像没生效,不知道是不是 CSS 写得不对。
这是我现在用的样式:
video {
width: 100%;
height: 100%;
object-fit: cover;
background: black;
}
容器是固定宽高的 div,视频比例明明是 16:9,但显示出来还是变形了,求问该怎么保持原始比例不拉伸?
你可以试试下面的样式:
pre class="pure-highlightjs line-numbers">
.video-container {
position: relative;
width: 100%;
padding-bottom: 56.25%; / 16:9 比例 /
overflow: hidden;
}
.video-container video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover; / 或者用 contain,看你喜欢哪种效果 /
}
记得把 video 标签放在一个 div 容器里,并给这个容器加上 .video-container 类名。这样视频就会按照 16:9 的比例显示,不会被拉伸了。如果视频本身的比例不是 16:9,你可能需要调整 padding-bottom 的百分比来匹配实际的比例。