Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TRTC零基础上手 -- 视频入门篇

TRTC零基础上手 -- 视频入门篇

原创
作者头像
天上云间
修改于 2022-01-09 14:57:12
修改于 2022-01-09 14:57:12
3.1K1
举报
文章被收录于专栏:云学堂云学堂

本文将就接入TRTC中常碰到与视频相关的问题进行分析和探讨,由于小编水平有限,如有误的地方,欢迎读者评论指正。

随着移动互联网普及,移动设备和高清摄像头在日常生活和工作中大量使用,人们产生海量的视频数据,如何高效实时采集、传输、显示视频数据,成为当下各方参与者摩拳擦掌的竞技舞台,TRTC是将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话低延时互动直播两大场景化方案,TRTC音视频解决方案是其中的佼佼者。

TRTC上手系列文章

🚩 视频基本属性

码率

码率又称比特率(bit rate)单位是bps,指的是单位时间内的数据量,比如,1kbps就是等于一秒内传输1024byte的数据。在视频压缩算法不变情况下,码率的大小决定了视频画面最终显示的质量。高码率一定比低码率的画面看起来要清晰和细腻,但可能会因为用户带宽不足导致卡顿,所以开发者需要根据场景分辨率等因素选择一个适合码率。

分辨率

分辨率(resolution)有时候又叫清晰度、解析度,是指画面的尺寸大小,通常使用横向像素 X 纵向像素,这样的形式表示。比如:640 x 480、1280 x 720 等。TRTC当前最高分辨率支持到2K。

帧率

帧是指每个静止画面,视频中每秒内显示的帧数量叫做帧率(frame rate),单位是fps(frame per second)。一般视频的帧率在15fps,画面的流畅度满足需要,对流畅度较高的场合可以设置24fps以上的帧率流程度,比如电影。

❓ 关于视频的新手常见误区

1. 分辨率越高越好?

较高的分辨率也需要较高的码率来支撑,如果分辨率选择 1280 x 720,但码率却指定为 200kbps,画面就会有大量的马赛克。推荐参考 分辨率码率参照表 进行设置。

2. 帧率越高越好?

由于摄像头采集的画面是曝光阶段中所有现实物体的完整映射,所以并不是帧率越高,感官就越流畅,这一点跟游戏里的FPS是不一样的。恰恰相反,帧率过高,会拉低每帧画面的画质,也会减少摄像机的曝光时间,效果可能会更差。

3. 码率越高越好?

较高的码率也需要较高的分辨率来匹配,对于 320 x 240 这样分辨率,1000kbps 的码率就很浪费了,推荐参考 分辨率码率参照表 进行设置。

4. 用WiFi可以设置很高的分辨率和码率?

并不是说 Wi-Fi 的网速是恒定不变的,如果离无线路由器较远, 或者路由器信道被占用,可能网速还不如 4G。

针对这种情况, TRTC SDK 提供了测速功能,可以在视频通话前先进行测速,根据打分值来确定网络好坏。

5. 在频繁关闭和打开视频场景,拉流画面会闪?

打开摄像头和关闭摄像头因为涉及一系列的硬件操作可能会有延时等情况,建议在这种场景使用暂停/恢复视频(muteLocalVideo)接口,使用该接口可以使得拉流画面快速的停止和恢复,效率更高,同时可以使用(setVideoMuteImage)设置暂停时推静止画面,从而获得更佳的用户体验。

6. 推荐一个视频画面既清晰又流畅还要省钱的方案?

可以根据场景选择,比如教育白板需要全高清分辨率但对帧率要求不高,码率设置大点同时开启大小画面,适应低带宽的用户,又比如直播场景对分辨率要求适中,设置码率和最小码率的区间大一点可以保证大多数用户观看流畅性。视频会议场景分辨率可以设小一点,满足头像画面即可,同时小画面可以很好地适应用户同时进行多路拉流的带宽需求。所以,既省钱又好的方案是需要跟应用场景相适配的。

🎖 TRTC视频能力拓展

在开发过程中,常常会遇到一些特殊的需求,这些需求中有的可能会超越一般的功能,正式TRTC有强大视频能力同时扩展能力非常丰富,开发者了解这些可以轻松搞定一些特殊的需求。

1. 视频画面为什么是镜像?

使用前摄像头进行视频通话,会有镜像效果,所以本地预览和远端观众画面是左右颠倒。若您想让两端画面一致可以参考以下方案:

方案一:改变本地预览画面

改变本地预览接口是通过接口setLocalViewMirror(mirrorType) 来改变本地预览画面镜像方式。如果开发者只想让前摄像头保持镜像,mirrorType 的值建议设置为 ATUO。

代码语言:txt
AI代码解释
复制
 trtcCloud.setLocalViewMirror(TRTCCloudDef.TRTC_VIDEO_MIRROR_TYPE_AUTO);

方案二:改变远端观众画面

这种方案是通过设置编码器画面镜像来改变远端画面,从而实现两端画面一致。

代码语言:txt
AI代码解释
复制
 trtcCloud.setVideoEncoderMirror(true);

2. 如何在界面上显示一个用户两个相同的画面?

SDK默认只支持把视频流渲染到指定组件上,如果需要在其他组件上显示相同的画面,可以使用SDK的自定义渲染功能,把视频画面渲染到指定的组件上。

参考文档 :自定义采集和渲染

3. 本地视频文件如何推送到TRTC?

方案一:自定义采集推流

使用视频解码库把本地画面解码为SDK可以识别的数据格式,然后通过SDK的自定义采集功能,把视频画面推流。也可以结合摄像头画面合成为一路推流。

参考文档 :自定义采集和渲染

方案二:使用屏幕共享采集视频画面

先共享本地屏幕画面,然后使用播放器打开该视频文件播放,可以放大至全屏,远端将看到视频画面。

参见文档:实时屏幕分享

方案三:RTMP推流接入TRTC

可以在本地安装 OBS 或 FFmpeg 选择本地文件进行推流,TRTC已经支持支持 RTMP 标准协议推流,目前该功能在内测中。

详情参见:RTMP协议推流

4. 怎样在视频画面中加入我家的Logo?

很多场景除了采集摄像头画面外,还需要添加水印或者logo,这时候可以通过下面方式设置:

方案一:设置水印效果

使用SDK的水印接口设置Logo,先将你家Logo保存为一张图片,然后在开始推流前调用setWatermark()接口在指定位置设置水印。如果需要更新水印的位置,可以调用该接口并对位置进行更新即可。

如果您要给主画面(一般为摄像头)和辅路画面(一般用作屏幕分享)同时设置水印,需要调用该接口两次,并设定不同的 streamType。

参见文档:添加水印

方案二:自定义采集推流

SDK提供了强大的扩展功能,可以把logo图片和采集画面进行混合后,通过自定义采集功能,把混合后的数据推流。该方案可以精确到每一帧,所以支持动态的水印效果,比如把一段视频作为水印logo,也可以是一些仪表盘类的动态参数显示在画面里。

参见文档:自定义采集和渲染

5. 如何在通话画面添加美颜效果?

通过SDK的setLocalVideoProcessListener()接口,设置自定义预处理回调,在回调里出来视频帧数据,处理后的数据会显示在预览画面和远端画面中,🈚️过程说把采集到的视频纹理回调出来,用于第三方美颜处理后推送。

参见文档:美颜SDK接入

6. 是否可以把多个用户的画面放在一起让其他人观看?

可以的,使用云端混流功能,把多个用户的画面按指定的模版进行混流推流,这时候远端只需要拉这一路流即可观看到房间内多个用户的画面。

参见文档:云端混流转码

7. 能否把6个人的音视频会议录制成一个文件?

可以的,使用云端混流功能,把6个用户的画面按指定的模版进行混流推流,然后在后台开启录制功能,同时设置录制参数开始录制,云端会把该显示6个人画面的流录制成一个文件,并存储在云点播服务。

参见文档:实现云端录制与回放

8. 如果有三个摄像头,想把这三个画面都采集推流,该如何实现?

如果设备支持同时打开三个摄像头,可以把这三路采集到的视频帧数据,通过算法合成一路视频帧,然后通过自定义采集接口推流。比如,先创建一个Bitmap,然后分别把每一路视频帧画到该Bitmap上,在把Bitmap转换为视频帧格式然后推送。

参见文档:TRTCSDK自定义采集

参考文档

新手常见问题

音视频常见问题

代码示例

视频质量

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
mark
mark
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
TRTC零基础上手 -- 视频异常篇
随着移动互联网普及,移动设备和高清摄像头在日常生活和工作中大量使用,人们产生海量的视频数据,如何高效实时采集、传输、显示视频数据,成为当下各方参与者摩拳擦掌的竞技舞台,TRTC是将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,TRTC音视频解决方案是其中的佼佼者。
天上云间
2022/01/09
2.7K0
TRTC零基础上手 -- 码上视频推流篇
视频画面来自于摄像头,TRTC SDK会采集摄像头的画面,然后编码打包发送至云端链路,开发者只需要调用采集接口和设置编码器视频参数(码率、分辨率、帧率等)完成摄像头画面的采集。
天上云间
2022/01/13
2.4K0
实时音视频 TRTC 常见问题汇总---集成接入篇
TRTC 的日志默认压缩加密,后缀为 .xlog。日志是否加密是可以通过 setLogCompressEnabled 来控制,生成的文件名里面含 C(compressed) 的就是加密压缩的,含 R(raw) 的就是明文的。
腾讯视频云-Zachary
2019/11/01
14.7K1
实时音视频 TRTC 常见问题汇总---集成接入篇
实时音视频 TRTC 常见问题汇总---咨询问题篇
TRTC 是腾讯云基于 QQ 十多年来在音视频通话技术上积累,结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 实时音视频互通服务 解决方案。 (1)您可以通过“crtl+F”(win)、“command+F”(mac)搜索关键字。 (2)若没有您想要的问答,欢迎在评论区提问、留言和交流,笔者会定期解答疑惑。 (3)最新产品动态与变更以官网文档为准。
TRTC小百科
2021/09/16
9.2K2
Q&A丨实时音视频 TRTC 技术问答强势来袭
我们针对实时音视频用户在后台提交的问题,归纳了近期咨询比较多的问答,供各位用户参考。 QUESTION1  Q :画面出现呼吸效应(一下清晰一下模糊),是什么原因?  A :呼吸效应产生主要有2种情况:  1.定焦镜头,I帧太小导致遇到I帧解码时模糊,想办法提高I帧的大小,可以尝试从vbr改为cbr,setVideoEncoderParam中设置videoBitrate=minVideoBitrate即为cbr。  2.变焦镜头,硬件不断聚焦。想办法改善拍摄环境,例如优化光源。 QUESTION2  
腾讯即时通信IM
2021/01/15
2.5K0
iOS音视频接入 - TRTC常见问题
在 TRTC SDK 的示例代码中提供了一个叫做GenerateTestUserSig的开源模块,您只需要将其中的 SDKAPPID、EXPIRETIME 和 SECRETKEY 三个成员变量修改成您自己的配置,就可以调用genTestUserSig()函数获取计算好的 UserSig。
小明同学接音视频
2020/10/21
3K0
iOS音视频接入 - TRTC常见问题
实时音视频 TRTC 常见问题汇总---WebRTC篇
TRTC Web SDK 对浏览器的详细支持度,您可以查看 TRTC Web SDK 对浏览器支持情况。
腾讯视频云-Zachary
2019/11/15
23.4K3
实时音视频 TRTC 常见问题汇总---WebRTC篇
TRTC零基础上手 -- 码上视频订阅篇
当作为拉流端,在远端推流后即可开始拉流,为了用户体验,建议按照规范要求,在收到SDK的事件回调后开始拉流,并在控件上显示远端画面
天上云间
2022/01/19
1.3K0
TRTC Android端开发接入学习之常见问题(十一)
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
腾讯云-hongyang
2020/09/27
3.3K0
实时音视频 TRTC 常见问题汇总---质量篇
如下代码所示,播放远端观众的画面渲染模式选择 TRTC_VIDEO_RENDER_MODE_FIT模式, 当渲染控件 View 的宽高比与视频宽高此不一致时,有黑边情况。
腾讯视频云-Zachary
2021/10/10
4.2K0
实时音视频开发学习14 - 常见问题
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
金林学音视频
2020/08/30
2.9K0
实时音视频开发学习14 - 常见问题
实时音视频 TRTC 常见问题汇总---咨询问题篇
支持的平台包括 iOS、Android、Windows(C++)、Windows(C#)、Mac、Web、Electron、微信小程序、Flutter,更多详情请参见 平台支持。
腾讯视频云-Zachary
2019/11/01
13.4K0
实时音视频 TRTC 常见问题汇总---咨询问题篇
跨平台音摄像头|屏幕推送选OBS还是SmartPublisher?
​好多开发者希望搞明白OBS和 SmartPublisher的区别和使用场景差别,本文就二者差别做个对比:
音视频牛哥
2024/10/18
4400
跨平台音摄像头|屏幕推送选OBS还是SmartPublisher?
你问我答 | 实时音视频TRTC
实时音视频TRTC 你问我答 第3季 本期共解答10个问题 Q1:TRTC小程序端,不想接入IM,如何实现接收自定义消息? 设置live-player的enable-recv-message属性为true,接收bindstatechange回调的返回值,判断code为2012的就是sei消息。 Q2:Web端的TRTC-Calling如何避免用户呼叫了一个人,这个人却处于通话中,此时用户调取消接听电话的接口会提示这个报错? 进房和信令发送的信令需要优化,因为不同sdk appip在处于通话中
腾讯云音视频
2022/02/21
2.3K0
实时音视频(TRTC)常见问题
一般而言,媒体音量指播放音乐、视频的声音、游戏声音等的音量,而通话音量指打电话的音量,视频通话的音量。
腾讯云-yyuanchen
2019/09/27
13.8K1
你问我答 | 云直播CSS(2021年5月-7月)
云直播CSS 你问我答 第9季 本期共解答10个问题 Q1:为什么云直播控制台配置了一种录制格式,但却录制了两种不同格式的录制文件? 首先通过查询录制任务列表接口确定是否在同时间创建了录制任务进行录制; 确定是否是TRTC旁路到云直播CDN的流,如果是,并登录TRTC控制台,在应用管理中找到你正在使用的应用,查看是否开启了云端录制,关闭云端录制。 Q2:为什么网络正常,推流上行码率依然不稳定,导致播放卡顿? 在推流端去ping 推流域名地址,通过返回的节点IP查询是否附
腾讯云音视频
2021/08/23
8520
你问我答 | 实时音视频TRTC(2021年8月-10月)
实时音视频TRTC 你问我答 第2季 本期共解答10个问题 Q1:TRTC通话,实现大小屏切换,类似微信通话效果,点击自己的画面和对方的画面展示位置互换。 支持大小屏切换,使用updateView功能,但需要给TXCloudVideoView调用addview添加一个textureview。 解决方案: 通话过程中,保证双方通话画面正常; 直接调用stop,再调用start,会有一段时间黑屏; 直接调用updateView对调,会导致远端画面不显示,或者没有效果; updateView
腾讯云音视频
2021/11/26
1.2K0
iOS音视频接入- TRTC计费及套餐介绍
实时音视频 TRTC 的服务项根据服务类型划分为基础服务和增值服务两大类。除了这两大类之外,从2019年10月11日起,首次在实时音视频控制台创建应用的腾讯账号,还可有10000分钟的免费试用,也就是第一次使用实时音视频这个产品就会有免费试用。有免费试用可以先试用,试用之后再看使用效果在决定是否续费套餐及购买活动的超值套餐。
小明同学接音视频
2020/10/19
3.5K0
iOS音视频接入- TRTC计费及套餐介绍
iOS音视频接入 - TRTC多人视频会议
官方SDK中提供了可复用的UI和封装了TRTCCloud的model,具体位置见下图。
小明同学接音视频
2020/10/15
2.6K0
iOS音视频接入 - TRTC多人视频会议
实时音视频开发学习8 - 云端混流转码
云端混流主要用于CND直播观看和云端录制回放等场景中,需要将TRTC房间里的多路音视频流混合成一路。混流方式为MCU混流转码集群,其能将多路音视频流进行混合,并将最终生成的视频流分发给直播CDN和云端录制系统。
金林学音视频
2020/08/25
2.1K0
实时音视频开发学习8 - 云端混流转码
推荐阅读
相关推荐
TRTC零基础上手 -- 视频异常篇
更多 >
交个朋友
加入[后端] 腾讯云技术交流站
后端架构设计 高可用系统实现
加入前端工作实战群
前端工程化实践 组件库开发经验分享
加入云原生工作实战群
云原生落地实践 技术难题攻坚探讨
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档