首页 > 其他分享 >FFmpeg问题:写文件时ffmpeg自动修改输出流time_base

FFmpeg问题:写文件时ffmpeg自动修改输出流time_base

时间:2022-10-29 19:12:22浏览次数:96  
标签:文件 ffmpeg FFmpeg 修改 base time 读取

一、问题描述

ffmpeg mux输出音视频文件时(如mp3),在加入视频流时设置time_base = 1/30, 但当调用 avformat_write_header() 之后,time_base 被修改为 1/15360 ,如下面两图所示:
调用函数之前:
img
调用函数之后:
img

二、问题溯源

  1. 准确来说这不是问题,时间基修改的原因是 它是从文件容器中直接读取的, 比如flv的视频和音频读取到的是1000,ts文件读取到的是90k,mp4文件视频比较变化多样,可能是24,1000等,这个时间基被称为 封装层time_base,

三、解决方案

  1. 建议编解码时采用自己设定的time_base, 然后写文件时将 packet 从自己设置的时间基转换到 文件时间基 即可。

标签:文件,ffmpeg,FFmpeg,修改,base,time,读取
From: https://www.cnblogs.com/zjacky/p/16838751.html

相关文章