学习课题:逐步构建开发播放器【QT5 + FFmpeg6 + SDL2】
前言
这一篇内容就是简单的了解一遍一些常用的函数名称和作用,混个眼熟。
能看源码的就去看源码!!!
能看源码的就去看源码!!!
能看源码的就去看源码!!!技巧:
对于ffmpeg
1、函数名字带有alloc的一般都是分配空间分配结构对于SDL
FFmpeg6.0
类/结构体
用于表示音视频封装格式的上下文信息。该结构体包含了音视频文件的所有相关信息,如音视频流的数量、编解码器的参数、采样率、帧率、时长、封装格式等等。
编解码器,它定义了一组可供使用的编解码器。通过使用AVCodec,我们可以实现对音视频文件的读取、解码、转换和编码等操作。
编解码器上下文,包含了编解码器的所有相关信息,例如编解码器类型、参数设置、输入输出格式等
AVFrame
函数
av_find_best_stream
根据AVFormatContext和参数对应的流找到流索引标识和对应的AVCodec编解码器av_read_frame
从音视频文件(AVFormatContext)中逐帧读取音视频数据包(AVPacket)释放AVPacket结构体中引用的AVBufferRef缓冲区,并重置AVPacket结构体的各个字段,
直接释放AVPacket结构体本身占用的内存,并将其置为NULL,一般是在整个循环完整结束后调用。
分配一个AVCodecContext结构体,并对其进行初始化。
avcodec_parameters_to_context将AVCodecParameters结构体中的参数值复制到AVCodecContext结构体中。
avcodec_open2初始化AVCodecContext,准备使用AVCodec编解码器。
把AVPacket作为输入,交给编解码器进行解码
avcodec_receive_frame
返回解码器或编码器解码后的输出数据对输入图像进行格式转换、尺寸调整等操作,得到输出图像。
swr_convert
对输入音频进行格式转换、采样率调整、声道数调整等操作,得到输出音频。
SDL2.0
类/结构体
SDL2.0中开始有的,表示音频设备的标识符,可以用来控制播放暂停和状态判断
表示窗口的数据结构,它提供了一种创建、管理和操作窗口的机制,使得开发者可以方便地进行图形界面的设计和实现。
SDL_Texture
SDL_Rect
函数
SDL_Init 初始化SDL库 SDL_OpenAudioDevice SDL2.0开始启用打开音频设备的函数,并返回SDL_AudioDeviceID,用于音频数据的输入和输出。 SDL_OpenAudio 旧版打开音频设备并设置音频参数,用于播放和录制音频,不返回设备对象。 SDL_LockMutex 锁定一个互斥锁,用于保护共享资源,确保在同一时间只有一个线程可以访问共享资源。 SDL_UnlockMutex 释放互斥锁,允许其他线程访问共享资源。 SDL_Delay 延迟一定的毫秒数,用于控制程序执行速度或实现简单的时间间隔。 SDL_PauseAudioDevice 对应SDL_OpenAudioDevice的暂停或恢复音频的播放。 SDL_PauseAudio 对应SDL_OpenAudio的暂停或恢复音频的播放。 SDL_CreateWindowFrom 创建一个SDL窗口,并从现有的窗口句柄创建,用于与其他图形库或窗口系统进行集成。可以与QT封装在一起,用的qwidget句柄,把SDL播放窗口创建在qt内。 SDL_CreateRenderer 创建一个渲染器,用于将图像渲染到窗口或纹理上。 SDL_CreateTexture 创建一个纹理,用于存储和操作图像数据。 SDL_UpdateTexture 更新纹理的像素数据,用于实时更新纹理上的图像。 SDL_UpdateYUVTexture 更新YUV格式的纹理的像素数据,用于实时更新纹理上的图像。RGB格式数据是不能用这个函数进行更新的。 SDL_RenderCopy 将纹理或部分纹理复制到渲染目标上,实现图像的绘制。 SDL_RenderPresent 在渲染目标上呈现最终的渲染结果,将其显示出来。
原文地址:https://blog.csdn.net/xyl192960/article/details/134602491
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_22544.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!