# VideoPlayer **Repository Path**: ACE_ZJH/video-player ## Basic Information - **Project Name**: VideoPlayer - **Description**: 该仓库为基于FFmpeg+SDL的视频播放器,用于个人学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-01-25 - **Last Updated**: 2022-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 基用FFMpeg+SDL的音频播放器 * 参考资料 > 1. [https://blog.csdn.net/leixiaohua1020?type=blog](https://gitee.com/link?target=https%3A%2F%2Fblog.csdn.net%2Fleixiaohua1020%3Ftype%3Dblog) > 2. [http://ffmpeg.org/](https://gitee.com/link?target=http%3A%2F%2Fffmpeg.org%2F) > 3. https://wiki.libsdl.org/ * 相关项目 > 1. 视频播放器:https://gitee.com/ACE_ZJH/video-player > 2. 音频播放器:https://gitee.com/ACE_ZJH/audio-player > 3. 音视频播放器:https://gitee.com/ACE_ZJH/avplayer > 4. 打包视频h264和音频aac为ts文件:https://gitee.com/ACE_ZJH/avpackage > 5. 音视频录制器:https://gitee.com/ACE_ZJH/avrecorder * 笔记记录 > 1. ffplay源码之serial变量分析:https://blog.csdn.net/weixin_44322983/article/details/122806913 > 2. ffplay源码之音视频同步分析:https://blog.csdn.net/weixin_44322983/article/details/122807015 * 支持功能 > 1. 实时显示视频播放进度 > 2. 可调整视频播放窗口 > 3. 可控制播放暂停 #### 视频播放器主要流程图 ![](https://gitee.com/ACE_ZJH/video-player/raw/master/img/process.png) #### 存在问题 * 由于当前播放时,没有采取同步措施,而是根据播放帧率采取延时的策略 #### 修复 * 播放长视频的中途会概率性退出播放,原因在于从文件中读取未解码帧数据速度过快,导致**AVFifoBuffer**存储的数据过多。解决办法为加入阈值限制,当存储到一定数量帧后,停止一段时间给解码线程提取数据,防止**AVFifoBuffer**存储的数据过多。 * 解决播放完成以及中途人为退出播放后,退出过慢的问题 * 因为没有采用视频播放同步措施,导致进度条结束后一大段时间,视频仍然没有播放完,所以临时取消进度条进程结束播放的功能