![[SimplePlayer] 实现一个简单的播放器 [SimplePlayer] 实现一个简单的播放器](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700)
简单的播放器需要实现一个最基本的功能:播放视频文件。
实现这个功能需要包含以下几个步骤:
- 从视频文件中提取视频图像
- 在屏幕上显示视频图像
- 视频帧的同步,也就是保证视频图像在合适的时间在屏幕上显示
- 从视频文件中提取音频
- 向音频设备输出音频
- 音频同步,也就是保证合适的时间输出合适的音频
- 多线程处理
- 音视频同步
本实现是通过ffmpeg来实现音视频的提取,通过sdl2来实现音视频的输出,版本如下:
libavutil 56. 19.100 / 56. 19.100
libavcodec 58. 23.100 / 58. 23.100
libavformat 58. 17.103 / 58. 17.103
libavdevice 58. 4.101 / 58. 4.101
libavfilter 7. 26.100 / 7. 26.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
libpostproc 55. 2.100 / 55. 2.100 sdl2 2.0.5