基于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:代表一个事件

浙公网安备 33010602011771号