基于FFmpeg+SDL的视频播放器的制作——雷霄骅
1.SDL2安装和测试
视频教程:基于FFmpeg+SDL的视频播放器的制作——雷霄骅
sudo apt-get install libsdl2-dev # 基本开发包
sudo apt-get install libsdl2-image-dev # 图像开发包
sudo apt-get install libsdl2-mixer-dev # 音频开发包
sudo apt-get install libsdl2-ttf-dev # 文字开发包
test_sdl2.cpp:测试sdl2是否安装成功。
extern "C"
{
#include "SDL2/SDL.h"
}
int main(int argc, char* argv[]){
if(SDL_Init(SDL_INIT_VIDEO)) {
printf( "Could not initialize SDL - %s\n", SDL_GetError());
} else{
printf("Success init SDL");
}
return 0;
}
2.SDL简介
SDL视频显示的流程图如下所示
SDL视频显示函数简介:
▫ SDL_Init():初始化SDL系统
▫ SDL_CreateWindow():创建窗口SDL_Window
▫ SDL_CreateRenderer():创建渲染器SDL_Renderer
▫ SDL_CreateTexture():创建纹理SDL_Texture
▫ SDL_UpdateTexture():设置纹理的数据
▫ SDL_RenderCopy():将纹理的数据拷贝给渲染器
▫ SDL_RenderPresent():显示
▫ SDL_Delay():工具函数,用于延时。
▫ SDL_Quit():退出SDL系统
SDL视频显示的数据结构:
SDL数据结构简介
▫ SDL_Window:代表了一个“窗口”
▫ SDL_Renderer:代表了一个“渲染器”
▫ SDL_Texture:代表了一个“纹理”
▫ SDL_Rect:一个简单的矩形结构,指定yuv现在的windows的位置,比如左上角、右下角等
SDL中事件和多线程
- SDL多线程
- SDL_CreateThread():创建一个线程
- SDL_Thread:线程的句柄
- SDL事件
- SDL_WaitEvent()等待一个事件
- SDL_PushEvent()发送一个事件
- SDL_Event:代表一个事件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?