在一些格式信息中可能没有头部信息,比如:FLV 可以用avformat_find_stream_info探测文件信息:编码宽高,但不能获取总时长。

尝试打印视频时长和流信息:可以发现FLV 里面是没有读到的

尝试添加 avformat_find_stream_info
//获取流信息 读取部分视频做探测
avformat_open_input_result = avformat_find_stream_info(avformat_context, 0);
if (avformat_open_input_result != 0) {
NSLog(@"avformat_find_stream_info failed!");
}

在处理如FLV等格式的文件时,avformat_find_stream_info()函数能探测文件编码宽高等信息,但无法直接获取总时长。通过av_find_best_stream(), av_read_frame和av_seek_frame等函数,可以读取和操作视频帧以计算时长。AVPacket结构体中的pts和dts用于表示时间戳,av_packet_ref和av_packet_unref管理引用计数。av_seek_frame则用于定位到特定时间位置,常结合AVSEEK_FLAG_XXX标志使用。"
102553350,6903139,GitHub 分支操作指南,"['Git', 'GitHub', '版本控制', '开发流程', '分支管理']
最低0.47元/天 解锁文章
2555

被折叠的 条评论
为什么被折叠?



