seek函数(seek的语法)
seek语句和seek函数的区别
获取当前位置,设置读、写操作。根据查询seek语句和seek函数相关资料得出。
1、seek语句和seek函数的区别是,Seek函数用与获取文件中指针的当前位置,其格式为:Seek(filenumber)。
2、Seek语句用来描述:在Open语句打开的文件中,设置读/写操作的位置。
FFMpeg中seek函数解析
FFmpeg提供了一个seek函数,原型如下
这个函数不管你当前在什么时间点上,都可以seek到任何合理位置。比如要实现在当前的基础上向后或向前跳转10秒,我们可以在av_read_frame函数拿到的包中含有当前时间戳的基础上增加或减少一个10000(换算成播放时间单位)再seek即可。所以这个函数可以用做进度的拖放、前进/后退一定时间、循环播放等功能。
s :操作上下文;
stream_index :基本流索引,表示当前的seek是针对哪个基本流,比如视频或者音频等等。
timestamp :要seek的时间点,以time_base或者AV_TIME_BASE为单位。
Flags :seek标志,可以设置为按字节,在按时间seek时取该点之前还是之后的关键帧,以及不按关键帧seek等,详细请参考FFmpeg的
avformat.h说明。基于FFmpeg的所有track mode几乎都是用这个函数来直接或间接实现的。
seek功能的实现
av_seek_frame(pFormatCtx, vid_index, 100000*vid_time_scale/time_base, AVSEEK_FLAG_BACKWARD);
av_seek_frame(pFormatCtx, aud_index, 80000*aud_time_scale/ time_base, AVSEEK_FLAG_BACKWARD);
av_seek_frame(pFormatCtx, vid_index, 0, AVSEEK_FLAG_BACKWARD);
上面的time_scale、time_base都能通过流信息获取到
Seek函数怎么用?
seek有两个参数(文件变量,偏移量)还有一个函数也是用于文件操作的fileseek(文件句柄,偏移量,起始位置)
seek函数用法python
参数offset--开始的偏移量,也就是代表需要移动偏移的字节数whence:可选,默认值为0。
给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
file.seek(off,whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。
如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。