有朋友问到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)相关推荐

  1. 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 ...

  2. ffmpeg mkv 文件解析

    一.mkv的文件组织 1. EBML基本单元 EBML组成mkv文件最基本的单元, 也是解析文件最小的一个粒度.EBML基本元素结构: ID:标志着这个EMBL 是一个什么类型的,类型决定了后面dat ...

  3. C#文件操作 File(静态类)

    操作某一个文件/文件夹,需要一个文件的完整路径 一.使用File的静态方法进行文件操作 1 2 3 4 5 6 7 8 9 //使用file的静态方法进行复制             File.Cop ...

  4. hadoop定位文件读取

    hadoop定位文件读取 需求说明: 上传文件 分块下载 查看 需求说明: 分块读取HDFS上的大文件,比如根目录下的/hadoop-2.7.2.tar.gz 上传文件 [xzc@hadoop102 ...

  5. python写文件读文件-Python 读写文件和file对象的方法(推荐)

    1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.tx ...

  6. 【转】Android必备知识点- Android文件(File)操作

    Android 使用与其他平台上基于磁盘的文件系统类似的文件系统. 本文讲述如何使用 Android 文件系统通过 File API 读取和写入文件. File 对象适合按照从开始到结束的顺序不跳过地 ...

  7. JAVA I/O之神奇的RandomAccessFile(快速定位文件任意位置,修改或插入)

    一.简述 这个是JDK上的截图,我们可以看到它的父类是Object,没有继承字节流.字符流家族中任何一个类.并且它实现了DataInput.DataOutput这两个接口,也就意味着这个类既可以读也可 ...

  8. android读写删file,Android文件(File)操作

    Android 使用与其他平台上基于磁盘的文件系统类似的文件系统. 本文讲述如何使用 Android 文件系统通过 File API 读取和写入文件. File 对象适合按照从开始到结束的顺序不跳过地 ...

  9. FFmpeg任意文件读取漏洞分析

    6月24号的时候hackerone网站上公布了一个ffmpeg的本地文件泄露的漏洞,可以影响ffmpeg很多版本,包括3.2.2.3.2.5.3.1.2.2.6.8等等. hackerone网站上的漏 ...

最新文章

  1. Runtime.getRuntime().addShutdownHook(new Thread()
  2. 以服务的方式提供站点基础功能支持
  3. [转] 数学符号英文拼写及发音
  4. 2519485c7dcfe0295a41d4e0f69bb10a 求解
  5. 系统、网络运维好帮手:expect
  6. Oracle 安装完怎么用,oracle 11g 安装完怎么用
  7. 使用Amoeba实现MySQL读写分离详细步骤(推荐的方式)
  8. VTK:绘图之Histogram2D
  9. Jacoco的原理(各个覆盖率的解释)
  10. linux集群命令关闭其中一台,自己整理的一点Linux命令集
  11. Track your visitors using an HttpModule
  12. js实现操作等待提示loading……
  13. java 解决内存泄露_Java内存泄露的理解与解决
  14. 微型计算机的硬件系统普遍采用,2016年9月计算机一级《MS Office》考题与答案
  15. mysql配置文件my.cnf的事例并附解释
  16. lua操作redis
  17. python nltk.download报错_python 文本转语音机器学习之nltk download安装测试包
  18. PPT计算机辅助教学,计算机辅助教学与多媒体课件制作
  19. python循环结构语句实现_Python的循环结构
  20. Android平台所支持的API级别

热门文章

  1. 【HDU1582 HDU1452 HDU1098 HDU3524 HDU1005 HDU2623 HDU2674】
  2. 第十八讲 傅里叶变换
  3. 【复习笔记】电力系统基础
  4. 机器学习之过拟合与欠拟合以及偏差-方差分解
  5. 测试用例的常用设计方法
  6. 在 aws emr 上,将 hbase table A 的数据,对 key 做 hash,写到另外一张 table B
  7. [CTSC2018]混合果汁
  8. Spring Boot OAuth 2.0 客户端
  9. 1014. 福尔摩斯的约会
  10. springMVC项目国际化(i18n)实现方法