簡單的播放器需要實現一個最基本的功能:播放視頻文件。
實現這個功能需要包含以下幾個步驟:
- 從視頻文件中提取視頻圖像
- 在屏幕上顯示視頻圖像
- 視頻幀的同步,也就是保證視頻圖像在合適的時間在屏幕上顯示
- 從視頻文件中提取音頻
- 向音頻設備輸出音頻
- 音頻同步,也就是保證合適的時間輸出合適的音頻
- 多線程處理
- 音視頻同步
本實現是通過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