ffmpeg复用保存成MP4.时间戳问题

熊猫Ben 2017-06-10 10:40:20
录制视频 ,采用ffmpeg的复用。
要正常播放必须
AVDictionary *opt=NULL;
av_dict_set_int(&opt,"video_track_timescale",25,0);
ret=avformat_write_header(ofmt_ctx,&opt);
而且pts只能+1递增。时间基没有设置也能十分正常播放。


为什么会这样子呢。为什么只能+1递增呢,而且为什么一定需要设置opt呢(opt不设置则会有几千的fps)。
...全文
2481 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
熊猫Ben 2017-06-12
  • 打赏
  • 举报
回复
引用 2 楼 qprevf的回复:
timescale指一秒钟按时钟滴答数计算是多少,如果你设置1000,则一秒钟是以1000计算,你设置成25,那一秒钟就以25计算,所以你pts只能+1。 因为你设置了video_track_timescale所以不需要设置时间基,这段代码在mov_init里体现。
感谢回复,稍微点通我了。 1,我不设置这个参数的时候,我的目标时间基要设为1/12800才能以 25.xxfps 播放,pts递增为512。 想同步必须设参数12800,视频目标时间基为1/12800,而且音频目标时间基为采样率的倒数1/48000 pts递增1024。如上设置能同步,但是我还是不知道为什么。 2,我想的是音视频公用一个时间基。这样pts的值就不会相差太多。但如果这样设置视频会很慢。那个参数应该是不一定要设置的吧。 3,还有你说的mov_init在哪?我找不到。
qprevf 2017-06-10
  • 打赏
  • 举报
回复
timescale指一秒钟按时钟滴答数计算是多少,如果你设置1000,则一秒钟是以1000计算,你设置成25,那一秒钟就以25计算,所以你pts只能+1。 因为你设置了video_track_timescale所以不需要设置时间基,这段代码在mov_init里体现。
熊猫Ben 2017-06-10
  • 打赏
  • 举报
回复
顶 顶顶顶顶顶顶顶顶顶

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧