Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >unity3d接入腾讯云播放器TXVodPlayer点播场景能获取视频帧数据吗?

unity3d接入腾讯云播放器TXVodPlayer点播场景能获取视频帧数据吗?

提问于 2023-09-19 09:33:54
回答 1关注 0查看 322

腾讯云播放器sdk提供直播场景与点播场景实现。

其他直播场景可以通过onRenderVideoFrame()获取视频帧数据,从而unity3d可通过getData获取视频帧数据完成渲染。

代码语言:javascript
运行
AI代码解释
复制
public void onRenderVideoFrame(V2TXLivePlayer player, V2TXLiveDef.V2TXLiveVideoFrame v2TXLiveVideoFrame) {
    synchronized(MainActivity.M2) {
        try {
            ByteArrayCallbackResult r = (ByteArrayCallbackResult)MainActivity.M2.get(name);
            if (r != null) {
                r.value = v2TXLiveVideoFrame.data;
                r.height = v2TXLiveVideoFrame.height;
                r.width = v2TXLiveVideoFrame.width;
                r.rotation = v2TXLiveVideoFrame.rotation;
            }
        } catch (Exception var6) {
            Log.e("video sdk ", "error " + var6.toString());
        }

    }
}

点播场景中没有对应的获取视频帧数据的方法,请问如何获取视频帧数据渲染到unity。下面是点播播放器回调通知。

代码语言:javascript
运行
AI代码解释
复制
                ITXVodPlayListener itxListeer = new ITXVodPlayListener() {
                    @Override
                    public void onPlayEvent(TXVodPlayer player, int event, Bundle param) {

                        if (mVodPlayer == null) {
                            return;
                        }

                        if (event + "" == TXVodConstants.EVT_KEY_FRAME_CONTENT_LIST) {
                            Log.d(TAG, "-------------------------------------------------------针数据------------------------");

                        }

                        if (event != TXLiveConstants.PLAY_EVT_PLAY_PROGRESS) {
                            Log.d(TAG, "-------------------------------------------------------不是播放事件------------------------");

                            String playEventLog = "receive event: " + event + ", " + param.getString(TXLiveConstants.EVT_DESCRIPTION);
                            Log.d(TAG, playEventLog);
                        }


                        if (event == TXLiveConstants.PLAY_EVT_VOD_LOADING_END) {
                            Log.d(TAG, "-------------------------------------------------------缓冲完成------------------------");

                            mIsStopped = true;
                        }

                        if (event == TXLiveConstants.PLAY_EVT_VOD_PLAY_PREPARED) {
                            Log.d(TAG, "-------------------------------------------------------准备播放------------------------");

                            List<TXBitrateItem> bitrateItems = mVodPlayer.getSupportedBitrates();
                            int bitrateItemSize = bitrateItems != null ? bitrateItems.size() : 0;
                            if (bitrateItemSize > 0) {
                                Collections.sort(bitrateItems); //masterPlaylist多清晰度,按照码率排序,从低到高
                            }
                        }

                        if (event == TXLiveConstants.PLAY_EVT_PLAY_BEGIN) {
                            Log.d(TAG, "-------------------------------------------------------开始播放------------------------");

                            //stopLoadingAnimation();
                            Log.d("AutoMonitor", "PlayFirstRender,cost=" + (System.currentTimeMillis() - mStartPlayTS));


                        } else if (event == TXLiveConstants.PLAY_EVT_PLAY_PROGRESS) {
                            Log.d(TAG, "-------------------------播放进程------------------------");


                            int progress = param.getInt(TXLiveConstants.EVT_PLAY_PROGRESS_MS);
                            int duration = param.getInt(TXLiveConstants.EVT_PLAY_DURATION_MS);
                            int playable = param.getInt(TXLiveConstants.EVT_PLAYABLE_DURATION_MS);

                            return;
                        } else if (event == TXLiveConstants.PLAY_ERR_NET_DISCONNECT || event == TXLiveConstants.PLAY_EVT_PLAY_END || event == TXLiveConstants.PLAY_ERR_FILE_NOT_FOUND) {
                            Log.d(TAG, "-------------------------------------------------------网络断开,播放结束,播放文件未找到------------------------");

                            stopPlayVod();
                            mVideoPlay = false;
                            mVideoPause = false;

                        } else if (event == TXLiveConstants.PLAY_EVT_PLAY_LOADING) {
                            Log.d(TAG, "-------------------------------------------------------视频数据缓冲中……------------------------");

                            // startLoadingAnimation();
                        } else if (event == TXLiveConstants.PLAY_EVT_RCV_FIRST_I_FRAME) {
                            Log.d(TAG, "------------------------------------------------------ 网络接收到首个可渲染的视频数据包(IDR)------------------------");

                            //  stopLoadingAnimation();
//            findViewById(R.id.playerHeaderView).setVisibility(View.GONE);
//            if (mPhoneListener.isInBackground()) {
//                mVodPlayer.pause();
//            }
                        } else if (event == TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION) {
                            Log.d(TAG, "-------------------------------------------------------改变分辨率------------------------");

                        } else if (event == TXLiveConstants.PLAY_ERR_HLS_KEY) {//HLS 解密 key 获取失败
                            Log.d(TAG, "-------------------------------------------------------解密 key 获取失败------------------------");

                            stopPlayVod();
                        } else if (event == TXLiveConstants.PLAY_WARNING_RECONNECT) {
                            Log.d(TAG, "-------------------------------------------------------警告重连------------------------");

                            //startLoadingAnimation();
                        } else if (event == TXLiveConstants.PLAY_EVT_CHANGE_ROTATION) {
                            Log.d(TAG, "-------------------------------------------------------改变方向------------------------");

                            return;
                        }

                        if (event < 0) {
                            Log.d(TAG, "-------------------------------------------------------没有事件------------------------");

                            // Toast.makeText(getApplicationContext(), param.getString(TXLiveConstants.EVT_DESCRIPTION), Toast.LENGTH_SHORT).show();
                        }
                    }
                    @Override
                    public void onNetStatus(TXVodPlayer txVodPlayer, Bundle bundle) {
                        //获取当前CPU使用率
                        CharSequence cpuUsage = bundle.getCharSequence(TXLiveConstants.NET_STATUS_CPU_USAGE);
                        //获取视频宽度
                        int videoWidth = bundle.getInt(TXLiveConstants.NET_STATUS_VIDEO_WIDTH);
                        //获取视频高度
                        int videoHeight = bundle.getInt(TXLiveConstants.NET_STATUS_VIDEO_HEIGHT);
                        //获取实时速率,  单位:kbps
                        int speed = bundle.getInt(TXLiveConstants.NET_STATUS_NET_SPEED);
                        //获取当前流媒体的视频帧率
                        int fps = bundle.getInt(TXLiveConstants.NET_STATUS_VIDEO_FPS);
                        //获取当前流媒体的视频码率,单位 bps
                        int videoBitRate = bundle.getInt(TXLiveConstants.NET_STATUS_VIDEO_BITRATE);
                        //获取当前流媒体的音频码率,单位 bps
                        int audioBitRate = bundle.getInt(TXLiveConstants.NET_STATUS_AUDIO_BITRATE);
                        //获取缓冲区(jitterbuffer)大小,缓冲区当前长度为0,说明离卡顿就不远了
                        int jitterbuffer = bundle.getInt(TXLiveConstants.NET_STATUS_VIDEO_CACHE);
                        //获取连接的服务器的IP地址
                        String ip = bundle.getString(TXLiveConstants.NET_STATUS_SERVER_IP);

                    }
                };
已邀请
等3人回答

回答 1

Lmx

发布于 2023-09-20 01:31:35

播放器客户端sdk,目前只提供了Web、iOS & Android、Flutter这几个平台。具体可以参考此文档:https://cloud.tencent.com/document/product/881/20205

和开发者交流更多问题细节吧,去 写回答
相关文章
移动直播MLVB常见问题(FAQ)
快速入门:https://cloud.tencent.com/document/product/454/7876
腾讯视频云-Zachary
2020/04/04
8.6K0
移动直播MLVB常见问题(FAQ)
新知 | 破局音视频终端困境,快速实现多种音视频应用
新知系列课程第二季来啦!我们将为大家带来全真互联时代下新的行业趋势、新的技术方向以及新的应用场景分享。本期我们邀请了腾讯云音视频高级产品经理——郑光键,为大家分享如何基于腾讯云视立方SDK破局音视频终端困境,快速实现各种音视频应用搭建。 腾讯云视立方整体介绍 在开发音视频终端应用时,开发者会面临非常多的开发困境。其中比较典型的就是开发者需要多次集成不同的SDK,例如集成直播SDK实现客户端的直播推拉流等功能,集成短视频SDK实现客户端的短视频编辑等能力。倘若在此基础上,客户端还需要实现连麦、通话等功能,就
腾讯云音视频
2022/11/28
4.9K0
新知 | 破局音视频终端困境,快速实现多种音视频应用
你问我答 | 云点播VOD(2021年8月-10月)
云点播VOD 你问我答 第10季 本期共解答10个问题 Q1:云点播视频播放失败如何排查? 视频播放失败有多种原因,定位问题的基本思路是: 配置网络抓包,查看网络请求情况。 查看浏览器控制台报错情况。 检查视频格式,使用的浏览器是否支持播放。 部分用户的原视频存在问题,可能导致视频上传后无法进行播放,建议用户在云点播进行一次转码后,使用转码后链接进行播放。 注意: 编码不是H.264编码的视频播放器无法播放,建议您转码为H.264编码的视频。 更多详情请参考[视频播放问题](https:
腾讯云音视频
2021/11/26
1.8K0
腾讯云 云点播特性,应用场景介绍
云点播(Video on Demand,VOD)基于腾讯多年技术积累与基础设施建设,为有音视频应用相关需求的客户提供包括音视频采集上传、存储管理、自动化转码处理、加速播放、媒体资源管理和音视频通信服务为一体的一站式 VPaaS 解决方案。
tengxunyun8点com活动整理
2019/04/26
7.4K0
腾讯云 云点播特性,应用场景介绍
腾讯云 上传视频_云点播系统源码
所需jar包http://download.csdn.net/download/sinat_36596988/10195891
全栈程序员站长
2022/11/17
14.9K0
云点播-腾讯云点播服务
腾讯云点播(Video on Demand,VOD)是集音视频上传、直播录制、媒体资源管理、自动化转码处理、视频 AI、分发加速、播放器 SDK 于一体的一站式音视频点播解决方案。
用户3570397
2019/08/05
27.2K0
云点播-腾讯云点播服务
技术解码 | 打造更安全的视频加密,云点播版权保护实践
导语 | 云点播在视频版权保护方面持续投入和演进,从最开始的「基础加密方案」,到后来的「私有加密方案」以及「商业级 DRM」,保护的安全级别逐步提高。本文将为大家详解各个加密方案的技术细节及优缺点,云点播用户可以结合自身业务场景,选择最适合自己的版权保护方案。 在中国,以在线教育、职业培训、OTT 服务商等为代表的网络视频行业,其付费规模逐步增长。然而,针对网络视频的盗版侵权行为层出不穷,对版权方利益造成了严重的损失。因此,这一类用户急切地希望其高质量的视频内容能受到加密保护,仅允许自己的付费用户
腾讯云音视频
2021/12/11
2.5K0
【云+社区年度征文】自适应码流加密+超级播放器播放最佳实践
随着视频行业的快速发展,越来越多的视频内容需要保护。不论腾讯视频、优酷、爱奇艺等视频媒体平台播放的独播剧、版权电影,还是在线教育网站提供的教学视频,抑或游戏主播录制的操作技巧,都离不开视频内容保护。防盗链是最常见的保护机制,但如果视频被盗链,则可以非法获取视频并传播。前段时间独播剧《使徒行者3》提供付费超前点播服务,结果很多第三方网站都可以在线观看,试想版权方的心里阴影面积……
clairehou
2020/12/11
4.9K0
【云+社区年度征文】自适应码流加密+超级播放器播放最佳实践
云点播“你问我答”年度汇总,2020你关心的问题都在这里!
2020年过去了,衷心感谢大家又一年的陪伴!这一年云点播不断上新与优化,坚持打磨更好的产品与服务,为广大音视频开发者们提供更强大的技术支撑、更丰富的产品能力。 我们在此整理了2020年点播用户最关心最常见的产品问答,涵盖了产品上新、计费变更、技术咨询等重要问题,与大家共同回顾过去一年点播产品的点滴成长。同时我们也希望与您一起,2021更加可期! 云点播(VOD)“你问我答”第二季(2020年2月) Q1:云点播视频上传方式有哪些? Q2:云点播如何删除视频? Q3:云点播视频播放器如何设置多清
腾讯云音视频
2021/01/18
2.5K0
云直播全了解
最早应用广播电视,主要通过卫星和电视网络,随着互联网兴起,逐步转向互联网视频点播方式
yeedomliu
2022/12/03
1.9K0
云直播全了解
本地云点播搭建流程是什么?云点播可以审核视频吗?
搭建云点播可以帮助我们解决很多视频相关的难题,例如视频的存储以及视频的播放,甚至是一些其他难题云点播都可以轻松解决。想要搭建云点播,需要进行一些必要的操作。那么,本地云点播搭建流程是什么呢?下文将做一个简单介绍。
用户8715145
2021/12/29
4.8K0
出海掘金,印尼“短视频新秀”背后的中国力量
在印度尼西亚,“KipasKipas“的生活方式正逐渐蔓延这个国家的年轻人,但他们不知道的是,这背后依靠的是中国力量...
腾讯云音视频
2023/10/24
7220
出海掘金,印尼“短视频新秀”背后的中国力量
云点播-腾讯云点播服务
腾讯云点播(Video on Demand,VOD)是集音视频上传、直播录制、媒体资源管理、自动化转码处理、视频 AI、分发加速、播放器 SDK 于一体的一站式音视频点播解决方案。
用户6592820
2019/10/30
22.7K0
云点播-腾讯云点播服务
云点播-腾讯云点播服务
腾讯云点播(Video on Demand,VOD)是集音视频上传、直播录制、媒体资源管理、自动化转码处理、视频 AI、分发加速、播放器 SDK 于一体的一站式音视频点播解决方案。
用户6465376
2019/10/15
24.3K0
云点播-腾讯云点播服务
腾讯云服务视频,腾讯云点播的视频上传和转码功能
有些用户烦恼腾讯云储存上传大文件的各种不方便,比如不能转码(要转码得先把mp4文件从云存储上下载下来,然后通过服务器执行ffmpeg操作,最后再把切割的ts文件上传到腾讯云,过程复杂且容易出错),不能获取实时的上传进度等等,所以就发现腾讯云点播这项技术。相对来说通过腾讯云点播既能实现上传进度的获取,而且还能上传完成后自动转码,比如自动把mp4转换为m3u8格式的清单文件来进行分片加载,这样子既能大大加快加载速度,还能保护视频链接的url,所以就记录一下这种技术的使用原理。
tengxunyun8点com活动整理
2019/04/30
16K0
腾讯云服务视频,腾讯云点播的视频上传和转码功能
云点播(VOD)“你问我答”第五季(2020.7月&8月)
腾讯云点播上传相同名称文件不会覆盖,管理视频的唯一标识是FileID,所有上传的视频都会分配一个唯一的FileID。
腾讯云音视频
2020/09/01
1.5K0
云点播(VOD)“你问我答”第五季(2020.7月&8月)
腾讯云服务视频,腾讯云点播的视频上传和转码功能
有些用户烦恼腾讯云储存上传大文件的各种不方便,比如不能转码(要转码得先把mp4文件从云存储上下载下来,然后通过服务器执行ffmpeg操作,最后再把切割的ts文件上传到腾讯云,过程复杂且容易出错),不能获取实时的上传进度等等,所以就发现腾讯云点播这项技术。相对来说通过腾讯云点播既能实现上传进度的获取,而且还能上传完成后自动转码,比如自动把mp4转换为m3u8格式的清单文件来进行分片加载,这样子既能大大加快加载速度,还能保护视频链接的url,所以就记录一下这种技术的使用原理。
用户6459747
2019/10/15
14.9K0
腾讯云服务视频,腾讯云点播的视频上传和转码功能
腾讯云服务视频,腾讯云点播的视频上传和转码功能
有些用户烦恼腾讯云储存上传大文件的各种不方便,比如不能转码(要转码得先把mp4文件从云存储上下载下来,然后通过服务器执行ffmpeg操作,最后再把切割的ts文件上传到腾讯云,过程复杂且容易出错),不能获取实时的上传进度等等,所以就发现腾讯云点播这项技术。相对来说通过腾讯云点播既能实现上传进度的获取,而且还能上传完成后自动转码,比如自动把mp4转换为m3u8格式的清单文件来进行分片加载,这样子既能大大加快加载速度,还能保护视频链接的url,所以就记录一下这种技术的使用原理。
用户6592874
2019/10/30
34.8K0
腾讯云服务视频,腾讯云点播的视频上传和转码功能
功能速递 | 腾讯云音视频播放器SDK新增短视频秒开组件、加密画中画等高级功能
播放器SDK是音视频终端SDK的子产品之一,采用“腾讯视频”同款播放内核,经过内部业务长期优化和海量服务验证,对比系统播放器性能可提升20%-50%,同时具备“臻彩视听”、精准Seek、画中画等丰富功能,为用户提供直播、点播场景下流畅稳定的音视频播放能力,覆盖泛娱乐、电商、教育等多样化音视频业务场景,支持Web/H5、iOS、Android、Flutter平台。近期,播放器SDK在原有功能基础上,新增短视频秒开组件、高级画中画组件、VR播放组件等高级功能,为用户提供更专业的音视频播放能力。
腾讯云音视频
2023/09/23
5340
功能速递 | 腾讯云音视频播放器SDK新增短视频秒开组件、加密画中画等高级功能
腾讯云在线教育企业上云图鉴
在线教育的互动直播系统上云,能够避免业务侧重复造轮子、提高资源利用率、降低开发和运维成本,且因其基于音视频开源标准和主流方案,能够更容易跟随技术发展的步伐。
云从业者
2018/10/19
2.9K0

相似问题

腾讯云视频点播服务Web播放器?

21.2K

腾讯云点播可以禁止用户快进视频吗?

2656

腾讯云点播sdk?

1724

腾讯云点播视频加密可以防止下载吗?

21.6K

腾讯云点播?

2292
相关问答用户
腾讯 | 行业应用产品经理擅长4个领域
腾讯云视频产品中心擅长4个领域
擅长3个领域
擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档