RV1126解码(1)

比如我们现在要拉一个流, 拉一个rtmp或者拉一个rtsp的流,让它显示到显示屏上面去,此时就要用到我们这个解码模块了,把它个解出来并且发到其他模块去。

主要功能是通过FFMPEG的API读取每一帧的音视频数据,并通过RV1126的解码,对每一帧的压缩数据进行解码操作,并最终把解码的数据打印出来。这里要注意的是,在本DEMO中我们重点讲解RV1126的视频解码,音频解码不会做过多的说,因为要涉及到音视频同步的问题。用视频讲解

下面来我们先来看一下解码流程框图

RV1126总体代码讲解

在RV1126解码DEMO中,首先创建VDEC模块,我们用三个线程去处理,分别是ffmpeg_read_thread线程、 send_vdec_thread线程、read_vdec_thread线程。下面我们来看看这三个线程的具体作用。

1.1 初始化VDEC模块

作用:VDEC模块的初始化,VDEC的功能是解码每一帧视频数据。

1.2 FFMPEG_READ_THREAD线程

fmpeg_read_thread线程的主要功能是利用ffmpeg框架读取每一帧音视频复合流数据(这里用到的核心的av_read_frame),若检测到视频索引(video_index),则插入视频编码队列里面。

1.3 send_vdec_thread线程

send_vdec_thread线程主要功能是从video_queue队列里面获取每一帧视频数据,然后通过RV1126的API把每一帧视频编码数据送到VDEC解码器进行解码操作。

1.4 read_vdec_thread线程

read_vdec_thread线程主要功能是通过RK_MPI_SYS_GetMediaBuffer获取每一帧VDEC(解码器)数据,并打印出每一帧VDEC的具体信息。

相关推荐
上海合宙LuatOS14 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
Android系统攻城狮16 小时前
Android16进阶之音频播放定位MediaPlayer.seekTo调用流程与实战(二百二十七)
音视频·mediaplayer·android16·音频进阶·音频性能实战
晚霞的不甘17 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
听麟17 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
晚霞的不甘18 小时前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
零一iTEM18 小时前
MAX98357A_音频输出测试
单片机·嵌入式硬件·开源·音视频·硬件工程
Android系统攻城狮20 小时前
Android16进阶之获取播放位置MediaPlayer.getCurrentPosition调用流程与实战(二百二十八)
音视频·android16·音频进阶·音频性能实战
炼金术20 小时前
SkyPlayer v1.2.0 : AI 字幕-端侧 Whisper 实时语音识别实践
ffmpeg·openai
愚公搬代码1 天前
【愚公系列】《AI短视频创作一本通》020-AI短视频创作实例精解(文旅宣传AI短视频实例精解)
人工智能·音视频
有位神秘人1 天前
Android获取设备中本地音频
android·音视频