基于FFmpeg的视频播放器之十六:完结

本文介绍了通过FFmpeg学习视频播放器开发的过程,强调实践与学习资源,如雷神博客、FFmpeg例子、开源播放器和源码。作者分享了在处理ape格式音频时遇到的问题及解决方法,并提及添加音频频谱的实现。建议使用FFmpeg较新版本,推荐测试音视频文件的网站和ffprobe工具。
摘要由CSDN通过智能技术生成

学习FFmpeg个人认为是不需要买书的,只需利用好下面四种资源
1.优秀的博客,比如雷神的博客:https://blog.csdn.net/leixiaohua1020
2.FFmppeg的exanmples:FFmpeg: Examples
3.优秀的开源播放器,比如VLC、MPlayer、MPV、QtAV等
4.FFmpeg的源码
当然最重要的是自己要尝试用FFmpeg去做一个基本功能完整的播放器,以做带学。如果身边有老鸟、大神相助就再好不过了。
博主本人喜欢听歌,播放器做好后,就试了试mp3和wav,都可以正常播放,然后再找来个ape,却不能正常播放,这时候只能去查找ape播放失败的原因,原来是因为ape格式音频几个frame仅有一个有效时间戳,所以需要给无时间戳的frame计算时间戳。这就是一个以做带学的真实案例。
如果想使音频播放界面更加酷炫,可以添加音频频谱,详见:
Qt之调用FFTW3实现音频频谱(原理)
Qt之调用FFTW3实现音频频谱(实现)
FFmpeg4都发布四年多了,现在学当然是从FFmpeg4开始,网上大多数资料都是几年前的,用到了很多FFmpeg4中已经废弃的函数,按照网上的教程来写代码会遇到各种问题,所以本专栏应运而生,用比较新的API来实现一些常用的功能。
播放器做好了之后,需要找一些音视频文件来测试其解码能力,https://samples.mplayerhq.hu是一个不错的选择,samples.mplayerhq.hu站点上的文件就是大名鼎鼎MPlayer提供的用来测试MPlayer解码能力的测试样本,里面各种格式的文件都有,并且每个文件都不太大,用来测试我们的程序最合适不过了。
FFmpeg自带的ffprobe可以非常有用的流媒体分析工具,使用ffprobe可以查看流媒体中包含的容器,以及容器中包含的流媒体的格式和类型,可用于辅助代码调试。当然通过下述代码也可以打印流媒体信息,与使用ffprobe得到的结果是一样的。

int main()
{
    const char *fileName = "C:\\Users\\zhang\\Videos\\west.mp4";
    AVFormatContext *formatCtx = avformat_alloc_context();
    avformat_open_input(&formatCtx, fileName, nullptr, nullptr);
    avformat_find_stream_info(formatCtx, nullptr);
    av_dump_format(formatCtx, 0, fileName, 0);
    avformat_close_input(&formatCtx);
    avformat_free_context(formatCtx);
}

PS:本专栏订阅后提供源码

原文链接:https://blog.csdn.net/caoshangpa/article/details/124989139

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>