使用av_seek_frame截取视频,首先看一下av_seek_frame()的函数原型,如下:
1 | int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,int flags); |
参数说明:
s: AVFormatContext类型的多媒体文件句柄
stream_index : int类型表示要进行操作的流索引
timestamp: int64_t类型的时间戳,表示要跳转到的时间位置
flags : 跳转方法,主要有一下几种
1 |
函数执行成功 返回值>=0
在执行跳转之前使用AV_TIME_BASE进行一个时间戳的转换。
在代码中使用到了boost::program_options对命令行参数进行操作,如果要编译成功需要使用boost::program_options,如果不想使用可以直接将那部分代码删除,然后编译连接的时候要链接到ffmpeg lib即可。
示例代码如下:
1 |
|