ffmpeg深入研究

本文介绍了在深入研究ffmpeg过程中遇到的问题及解决方案,包括音视频同步原理、时间基理解、网络流处理、错误排查及转码中的杂音消除等。通过分析源码和实验,解决了aac保存mp4报错、音频转码后播放速度变化等问题,并强调了字节转换的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“双语播放器”已在app store上架,欢迎大家前去下载(主要用于看电影,学英语,程序员一定要学好英语!)

这里是链接:

https://itunes.apple.com/cn/app/shuang-yu-bo-fang-qi-kan-dian/id950279764?mt=8



1.获取音频格式支持的采样率

    if (codec->supported_samplerates) {
        for (int i = 0; codec->supported_samplerates[i] != 0; i++)
            NSLog(@"supported_samplerates %d",codec->supported_samplerates[i]);
            
    }

2.根据错误提示,搜索源码,直接定位错误

Specified sample_rate is not supported

搜索到utils.c文件,就能找到采样率对照表

3.一定要学会把不可控的网络流播放变成可控的本地播放

比如你要把网络流的h264视频保存成mp4格式,那么你先把数据保存到本地,可控性肯定更好,也能让你更容易找到规律,然后再对网络流进行操作就要好很多。

4.音视频同步

以前使用ffmpeg都是从网上找代码,然后直接使用,但是这样不是长久之计,所以想从源码提示开始学习。

大概知道pts,dts是用于音视频同步的,那么他们是怎么使音视频同步的?为什么需要两个参数?难道一个参数不可以吗?

ffmpeg描述dts: 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值