ffmpeg转换h264裸流为mp4文件播放速度慢
发布时间
阅读量:
阅读量
计算实际帧率的方法是:首先需要从mp4的moov box中的mvhd中获取timescale和duration,并将它们相除以获得文件总持续时间。
从stsz box中获取样本总数 sample_count,并将其与总的时长相除得到平均帧率
frame_rate = sample_count/(duration/timescale)
解决方法:通过查询mp4帧率计算得到答案:
AVDictionary* opt = NULL;
av_dict_set(&opt, "video_track_timescale", "90000", 0);
备注:
使用AVDictionary对象变量 opt 初始化为NULL。
通过函数 av_dict_set_int 设置 opt 指针指向的字典项 'video_track_timescale' 的值为25和0。
调用 avformat_write_header 函数并返回指向的结果码的指针 ofmt_ctx 和 opt 指针。
此外, pts字段每次只能增加1个单位。
即使时间基未被设定, 视频依然能够正常播放。
timescale定义为每秒内的时钟滴答次数。若将值设为1,则每秒的计数值将基于该值。若设定为25,则该秒内的计数值将基于这一设定,因此在这种情况下的pts仅增加一次。由于已配置video_track_timesca
全部评论 (0)
还没有任何评论哟~
