Ffmpeg 定位文件(seek file)
有朋友问到ffmpeg播放文件如何定位问题,我想到应该还有一些新手朋友对这一块比较陌生。ffmpeg定位问题用到seek方法,代码
如下:
void SeekFrame(AVFormatContext* context, int64_t seekFrame)//跳转到指定位置 {int defaultStreamIndex = av_find_default_stream_index(context);if(ist->index == defaultStreamIndex){auto time_base = context->streams[defaultStreamIndex]->time_base;auto seekTime = context->streams[defaultStreamIndex]->start_time + av_rescale(seekFrame, time_base.den, time_base.num);int ret ;if(seekTime > ist->cur_dts){ret = av_seek_frame(context, defaultStreamIndex, seekTime, AVSEEK_FLAG_ANY);}else{ret = av_seek_frame(context, defaultStreamIndex, seekTime, AVSEEK_FLAG_ANY | AVSEEK_FLAG_BACKWARD);}} }
需要注意的是,调用seek方法以后,packet的时间戳一定要重新计算,ffmpeg要求时间戳递增,可以用一个成员变量记住最后一个时间戳信息,依次累加。
如需交流 请加入流媒体/Ffmpeg/音视频 127903734
转载于:https://www.cnblogs.com/wanggang123/p/5686187.html
Ffmpeg 定位文件(seek file)相关推荐
- ffmpeg合并文件报错Unsafe file name Operation not permitted
ffmpeg合并文件报错 Unsafe file name '/data/hk_sdk/demo/aaa.mp4' /data/hk_sdk/demo/test.txt: Operation not ...
- ffmpeg mkv 文件解析
一.mkv的文件组织 1. EBML基本单元 EBML组成mkv文件最基本的单元, 也是解析文件最小的一个粒度.EBML基本元素结构: ID:标志着这个EMBL 是一个什么类型的,类型决定了后面dat ...
- C#文件操作 File(静态类)
操作某一个文件/文件夹,需要一个文件的完整路径 一.使用File的静态方法进行文件操作 1 2 3 4 5 6 7 8 9 //使用file的静态方法进行复制 File.Cop ...
- hadoop定位文件读取
hadoop定位文件读取 需求说明: 上传文件 分块下载 查看 需求说明: 分块读取HDFS上的大文件,比如根目录下的/hadoop-2.7.2.tar.gz 上传文件 [xzc@hadoop102 ...
- python写文件读文件-Python 读写文件和file对象的方法(推荐)
1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.tx ...
- 【转】Android必备知识点- Android文件(File)操作
Android 使用与其他平台上基于磁盘的文件系统类似的文件系统. 本文讲述如何使用 Android 文件系统通过 File API 读取和写入文件. File 对象适合按照从开始到结束的顺序不跳过地 ...
- JAVA I/O之神奇的RandomAccessFile(快速定位文件任意位置,修改或插入)
一.简述 这个是JDK上的截图,我们可以看到它的父类是Object,没有继承字节流.字符流家族中任何一个类.并且它实现了DataInput.DataOutput这两个接口,也就意味着这个类既可以读也可 ...
- android读写删file,Android文件(File)操作
Android 使用与其他平台上基于磁盘的文件系统类似的文件系统. 本文讲述如何使用 Android 文件系统通过 File API 读取和写入文件. File 对象适合按照从开始到结束的顺序不跳过地 ...
- FFmpeg任意文件读取漏洞分析
6月24号的时候hackerone网站上公布了一个ffmpeg的本地文件泄露的漏洞,可以影响ffmpeg很多版本,包括3.2.2.3.2.5.3.1.2.2.6.8等等. hackerone网站上的漏 ...
最新文章
- Runtime.getRuntime().addShutdownHook(new Thread()
- 以服务的方式提供站点基础功能支持
- [转] 数学符号英文拼写及发音
- 2519485c7dcfe0295a41d4e0f69bb10a 求解
- 系统、网络运维好帮手:expect
- Oracle 安装完怎么用,oracle 11g 安装完怎么用
- 使用Amoeba实现MySQL读写分离详细步骤(推荐的方式)
- VTK:绘图之Histogram2D
- Jacoco的原理(各个覆盖率的解释)
- linux集群命令关闭其中一台,自己整理的一点Linux命令集
- Track your visitors using an HttpModule
- js实现操作等待提示loading……
- java 解决内存泄露_Java内存泄露的理解与解决
- 微型计算机的硬件系统普遍采用,2016年9月计算机一级《MS Office》考题与答案
- mysql配置文件my.cnf的事例并附解释
- lua操作redis
- python nltk.download报错_python 文本转语音机器学习之nltk download安装测试包
- PPT计算机辅助教学,计算机辅助教学与多媒体课件制作
- python循环结构语句实现_Python的循环结构
- Android平台所支持的API级别