使用ffmpeg 获取视频总时长

来源:互联网 发布:我爱发明 知乎 编辑:程序博客网 时间:2024/05/19 18:38

以前一直以为知道pFormatContext后,通过其成员变量duration就是视频长度。但是通过实验,其数值都是很大的负数,一看就不对,最近看av_dump_format(),看到此函数输出了视频的时长,然后看了下源码,找到了获取视频的时长的方法
直接贴出 :

if(pFormatCtx->duration!=AV_NOPTS_VALUE){   int hours,mins,secs,us;   int64_t duration=pFormatCtx->duration+5000;   secs=duration/AV_TIME_BASE;   us=dyration%AV_TIME_BASE;//1000000   mins=secs/60;   secs%=60;   hours=mins/60;   mins%=60;   printf("%02d:%02d:%02d.%02d\n",hours,mins,secs,(100*us)/AV_TIME_BASE);}

这个方法调用要在执行完avformat_find_stream_info()后使用

原创粉丝点击