FFMPEG视频编码需要注意的一些问题
2018-02-25 10:52
344 查看
使用ffmpeg进行视频编码,除了一些固定的流程外,容易出问题的地方是音视频的同步,尤其是需要重新指定时间戳的情况下。以下是一些需要注意的问题:
1)、FFMPE编码时,时间戳只需要指定AVFrame的pts字段。2)、时间戳的的时间单位使用AVCodecContext中的timebase,编码完成后,在使用函数av_interleaved_write_frame写文件之前,需要使用函数av_packet_rescale_ts把AVPacket中的时间戳(此时dts也会有值)、duration等字段的值的时间单位转为流的时间单位(AVStream中的timebase字段)。3)、音频编码时,对音频帧中采样的数量(AVFrame的nb_samples字段)有要求,这个值可以从AVCodecContext中的frame_size字段获取。所以需要把原始的数据进行缓存,然后按照目标编码要求的采样数量来取,并根据原来帧的时间戳重新计算时间戳。
1)、FFMPE编码时,时间戳只需要指定AVFrame的pts字段。2)、时间戳的的时间单位使用AVCodecContext中的timebase,编码完成后,在使用函数av_interleaved_write_frame写文件之前,需要使用函数av_packet_rescale_ts把AVPacket中的时间戳(此时dts也会有值)、duration等字段的值的时间单位转为流的时间单位(AVStream中的timebase字段)。3)、音频编码时,对音频帧中采样的数量(AVFrame的nb_samples字段)有要求,这个值可以从AVCodecContext中的frame_size字段获取。所以需要把原始的数据进行缓存,然后按照目标编码要求的采样数量来取,并根据原来帧的时间戳重新计算时间戳。
相关文章推荐
- request.querystring("id")与request("id")的区别以及需要注意的编码问题
- Filter一些需要注意的问题
- jQuery调用WCF需要注意的一些问题
- 升级Xcode8后需要注意的一些问题
- 如果表单有中文参数值,也需要注意编码问题
- 关于CSS的定位问题,你需要注意的一些坑
- W3C需要注意的一些问题
- 在c#里调用C++的dll时,需要注意的一些问题
- Android替换字体时需要注意的一些问题
- python中将函数赋值给变量时需要注意的一些问题
- 转周立功《立志从事嵌入式技术的学生需要注意的一些问题》
- 创建曲面的多边形需要注意的一些问题
- Android分享链接使用ShareSdk需要注意的一些小问题
- 机器学习算法需要注意的一些问题(二)
- 【转】Eazfuscator.NET 3.3中混淆化需要注意的一些问题
- Laravel使用消息队列需要注意的一些问题
- PowerDesigner16.5快速入门显示,注释comment配置方法,以及创建sql文件过程中需要注意的一些问题
- 使用redis缓存数据需要注意的问题以及个人的一些思考和理解
- vector使用需要注意的一些问题
- nodejs express 安装需要注意的一些问题