前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【FFmpeg】ffplay 命令行参数 ② ( 设置播放位置和持续时间 -ss 参数 / -t 参数 | 按字节定位拖动 -bytes 参数 | 按时间定位拖动 -seek_interval参数 )

【FFmpeg】ffplay 命令行参数 ② ( 设置播放位置和持续时间 -ss 参数 / -t 参数 | 按字节定位拖动 -bytes 参数 | 按时间定位拖动 -seek_interval参数 )

作者头像
韩曙亮
发布2024-02-01 08:27:50
9220
发布2024-02-01 08:27:50
举报
文章被收录于专栏:韩曙亮的移动开发专栏

一、ffplay 命令行参数 - 设置播放位置和持续时间

1、定位拖动 -ss 参数

使用 -ss position 参数 , 可以 设置 跳转到 指定的位置 开始播放 , 指定 输入文件 的起始时间点 , 开始播放 后将跳转到此时间点 , 然后开始 播放视频 ;

上述参数 中的 position 参数值 的 格式

  • 可以是 秒 为单位的时间 , 如 : 10 表示 从 第 10 秒开始播放 ;
  • 可以是 时间标记 , 如 : 00:00:15 表示 从第 15 秒开始播放 ;

执行

代码语言:javascript
复制
ffplay -ss 00:00:15 zhongtu.mp4

命令 , 从 第 0 小时 第 0 分钟 第 15 秒 开始播放 , 从下图中 命令行 的 左下角 可以看到 从 15 秒开始播放 ;

执行

代码语言:javascript
复制
ffplay -ss 15 zhongtu.mp4

命令 , 有相同的效果 ;

2、设置播放视频长度 -t 参数

使用 -t duration 参数 , 可以 设置 视频 或 音频 播放时间 , duration 指的是播放时间 , 单位是 秒 ;

duration 播放时间 参数值 :

  • 可以是 秒持续 为单位的时间 , 如 : 5 表示 播放 5 秒钟 ;
  • 可以是 时间标记 , 如 : 00:00:05 表示 播放 5 秒钟 ;

如果 要 播放从某一 特定开始点 起的10 秒视频 ,

  • 使用 -ss 设置 播放起始时间点
  • 使用 -t 参数 设置 播放持续时间

注意 : -t 参数指定的时间长度是从-ss参数指定的开始时间点计算的。如果没有指定-ss参数,那么-t参数将从视频的开头开始计算播放长度

执行

代码语言:javascript
复制
ffplay -t 5 zhongtu.mp4

命令 , 会播放 5 秒 视频 , 5 秒 播放完成后 , 会 停止播放 ;

执行

代码语言:javascript
复制
ffplay -t 00:00:05 zhongtu.mp4

命令 , 有相同的效果 ;

3、命令行示例 - 从指定时间开始播放指定时间的视频

执行

代码语言:javascript
复制
ffplay -ss 00:00:05 -t 00:00:05 zhongtu.mp4

命令 , 可以从 第 5 秒开始 , 播放 5 秒钟的视频 ;

二、ffplay 命令行参数 - 按字节定位拖动


1、按字节定位拖动 -bytes 参数

ffplay 命令的 -bytes 参数 用于 设置 是否启用 按字节 定位拖动 的 功能 ;

开启后 , 可以使用 左右箭头 按键 , 控制 按字节 定位拖动 功能 ;

默认状态下的参数为 -1 , 自动选择 是否 开启 按字节定位拖动 功能 ;

特别注意 : mp4 格式的视频不支持该功能 , flv 格式的视频支持该功能 ;

-bytes 参数 的 参数值 : 可以是 0 , 1 或 -1 ;

  • 参数值 为 1 时 : 表示 开启 按字节定位拖动 ;
  • 参数值 为 0 时 : 表示 关闭 按字节定位拖动 ;
  • 参数值 为 -1 时 : 表示 自动选择 是否 开启 按字节定位拖动 ;

当 需要 精确地 控制播放位置 时 , 可以通过该参数 , 开启 按字节 定位拖动功能 ;

2、命令行示例 - mp4 格式按字节定位拖动失败

执行

代码语言:javascript
复制
ffplay -bytes 1 zhongtu.mp4

命令 , 开始播放视频 , 并同时启动 按字节拖动功能 ;

在播放期间 , 选中 视频 , 使用 左右箭头 按键 控制 拖动功能 , 发现 mp4 格式的视频 , 不支持拖动 ;

代码语言:javascript
复制
zhongtu.mp4: error while seeking  33KB vq=   39KB sq=    0B f=0/0
zhongtu.mp4: error while seeking  33KB vq=   14KB sq=    0B f=0/0

3、命令行示例 - flv 格式按字节定位拖动成功

执行

代码语言:javascript
复制
ffplay -bytes 1 2.flv

命令 , 开始播放视频 , 并同时启动 按字节拖动功能 ;

播放 flv 格式 视频 文件时 , 开启 按字节定位拖动 功能 , 使用 左右方向键 可以实现 视频的拖动功能 ;

4、mp4 与 flv 格式分析

mp4 格式的视频不支持该功能 , flv 格式的视频支持该功能 ;

这于 视频格式 有很大的关系 ,

  • mp4 容器 格式通常包含复杂的 内部结构 和 元数据 , 视频帧 的 帧头数据 和 帧内容数据 是 分开存储的 , 存储并不连续 , 该 数据结构 会影响字节到时间的映射 , 该格式下 不能 按照 字节 进行 定位拖动 ;
  • flv 容器 格式 更简单 , 该格式中 视频帧 的 帧头 和 数据 是存储在一起的 , 帧数据是连续存储的 , 因此 按照 字节 定位拖动 可实现 ;

三、ffplay 命令行参数 - 按时间定位拖动


1、 按时间定位拖动 -seek_interval 参数

ffplay 命令的 -seek_interval 参数用于 自定义 左右方向键 定位拖动的间隔 , 单位是秒 ; 该参数的 默认值为 10 秒 ,

  • 按下 左方向键 向前快退 10 秒 ,
  • 按下 右方向键 向后快进 10 秒 ;

如 : -seek_interval 2 参数设置 , 就意味着按下左或右键 , 播放位置将 向前或向后 跳动 2 秒 ;

该参数对于需要 精确控制 播放位置 的场景特别有用 , 如 : 在编辑或分析视频时 , 通过调整定位间隔 , 可以更快地导航到视频的特定部分 , 而无需每次都手动输入精确的时间码 ;

2、 命令行示例 - 按时间定位拖动

执行

代码语言:javascript
复制
ffplay -x 800 -y 600 -seek_interval 2 yuanshen.mp4

命令 , 播放视频后 , 每次 使用 左右方向键 时 , 都会 前进 / 后退 2 秒 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、定位拖动 -ss 参数
  • 2、设置播放视频长度 -t 参数
  • 3、命令行示例 - 从指定时间开始播放指定时间的视频
  • 二、ffplay 命令行参数 - 按字节定位拖动
    • 1、按字节定位拖动 -bytes 参数
      • 2、命令行示例 - mp4 格式按字节定位拖动失败
        • 3、命令行示例 - flv 格式按字节定位拖动成功
          • 4、mp4 与 flv 格式分析
          • 三、ffplay 命令行参数 - 按时间定位拖动
            • 1、 按时间定位拖动 -seek_interval 参数
              • 2、 命令行示例 - 按时间定位拖动
              相关产品与服务
              对象存储
              对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档