ffmpeg 实用命令 -- 截取视频

这篇具有很好参考价值的文章主要介绍了ffmpeg 实用命令 -- 截取视频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

截图

下例利用 select 过滤器,抽取了视频中的第 86 帧,保存为 extract.png:

ffmpeg -i video.mp4 -vf 'select=eq(n\,85)' -vframes 1 extract.png

帧是从0开始的,所以要写85才是对应第86帧

 如果不需要特别精确,也可以用时间戳来截取:

ffmpeg -ss 00:00:04.22 -i video.mp4 -vframes 1 extract.png

截取视频

下面,以想要截取 video.mp4 视频的第2到第5分钟为例。

对于容易计算片段秒数的截取任务(本例中片段长为 (5-2)*60=180秒),可以使用 -t 参数,即指定片段长度。

ffmpeg -ss 00:02:00 -i video.mp4 -t 180 cut.mp4

其中, -ss 参数指定了起始的时间戳记,而 -t 参数指定了片段长度(秒)。传递给 -t 的片段长度可以写成 00:03:00 的形式。它也可以带有小数,比如用 180.5 表示 180.5 秒。

或者,用户可以不用 -t 指定片段长度,而是用 -to 指定终止时刻。下例中把参数 -ss 与 -to 都放在了 -i 参数之前:

ffmpeg -ss 00:02:00 -to 00:05:00 -i video.mp4 cut.mp4

需要注意,在上面的例子中, 参数 -ss 均被放在了 -i 参数之前,这称为输入(inputing)参数语法;对应的时间戳检索方式称为输入检索(inputing seek)。如果放在 -i 参数之后,则称为输出(outputing)参数与输出检索。

  • 输入检索根据关键帧来检索,而输出检索是逐帧地检索地。因此输入检索地速度会比输出检索更快。

  • 由于关键帧定位的特性,输入检索在执行流复制操作(如 -c copy )时定位可能并不精确;在非流复制(即重新编码)并指定了 -accurate_seek (默认已指定)时,则无此问题。关于为何会造成定位的不精确,请参考本小节末尾的注释。

  • 输入检索会提前将 -ss 参数指定的时间戳设置为 0;因此,如果将 -t/-to 参数放在 -i 参数之后(作为输出参数),FFmpeg 都实质将参数值当作一个片段长度(而不是终止时刻)。例如:

    ffmpeg -ss 00:02:00 -i video.mp4 -t 00:05:00 cut.mp4
    ffmpeg -ss 00:02:00 -i video.mp4 -to 00:05:00 cut.mp4  # 意外的结果
    

    这两种命令的结果是一样的,都截取了第 2 到第 7 分钟;这对于使用 -to 参数的用户来说,可能是不希望看到的。因此,推荐将 -t/-to 参数一起都作为输入参数来使用。

总结文章来源地址https://www.toymoban.com/news/detail-804660.html

# 任务:截取视频的第 2 至 5 分钟。

# 1. 可接受起始片段前的额外内容,可能长达数秒 —— 方案 A
# 2. 不可接受上述精度,要求精确到给定时刻最近的关键帧 —— 方案 B
# 3. 不可接受上述精度,要求精确到给定时刻最近的帧 —— 方案 C

# 根据上述问题的回答,选择合适的方案:

# A) 用快速截取(输入参数),配合流复制。该方案截取速度非常快。
## 以 -t 参数指定片段长,或以 -to 参数指定终止时间戳
ffmpeg -ss 00:02:00 -t 00:03:00 -i video.mp4 -c copy cut.mp4
ffmpeg -ss 00:02:00 -to 00:05:00 -i video.mp4 -c copy cut.mp4

# B) 用快速截取,但不能使用流复制,片段会被重编码。截取速度近似于编码等长视频的速度。
ffmpeg -ss 00:02:00 -t 00:03:00 -i video.mp4 cut.mp4
ffmpeg -ss 00:02:00 -to 00:05:00 -i video.mp4 cut.mp4

# C) 用慢速截取(输出参数),片段之前的内容也会被重编码。截取速度极慢。
ffmpeg -i video.mp4 -ss 00:02:00 -t 00:03:00 cut.mp4
ffmpeg -i video.mp4 -ss 00:02:00 -to 00:05:00 cut.mp4

到了这里,关于ffmpeg 实用命令 -- 截取视频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 音视频 ffmpeg命令转封装

    保持编码格式: 改变编码格式: 修改帧率: 修改视频码率: 修改视频码率: 修改音频码率: 修改音视频码率: 修改视频分辨率: 修改音频采样率: 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音

    2024年02月10日
    浏览(53)
  • FFMPEG常用命令 音视频合并

            目录 一、音频合并 1.获取音频时长 2.合并两段音频 3.合并音频插入空白 二、视频加背景图 三、音视频合成 1.保留视频声音 2.不保留视频声音 四、合并视频         本文将用几个实例,介绍ffmpeg命令的综合使用,主要涉及音频处理、视频处理和音视频合成。 参数

    2024年02月10日
    浏览(70)
  • 音视频 ffmpeg命令参数说明

    主要参数: -i 设定输入流 -f 设定输出格式(format) -ss 开始时间 -t 时间长度 音频参数: -aframes 设置要输出的音频帧数 -b:a 音频码率 -ar 设定采样率 -ac 设定声音的Channel数 -acodec 设定声音编解码器,如果用copy表示原始编解码数据必须被拷贝。 -an 不处理音频 -af 音频过滤器 视频

    2024年02月10日
    浏览(51)
  • 音视频 ffmpeg命令图片与视频互转

    截取一张图片 转换视频为图片(每帧一张图): 图片转换为视频: 从视频中生成GIF图片 将 GIF 转化为 视频 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核) https://xxetb.xet.tech/s/VsFMs

    2024年02月10日
    浏览(52)
  • 音视频 ffmpeg命令分类查询

    命令参数 内容 -version 显示版本 -bsfs 显示可用比特流filter -buildconf 显示编译配置 -formats 显示可用格式(muxers+demuxers) -muxers 显示可用复用器 -demuxers 显示可用解复用器 -codecs 显示可用编解码器(decoders+encoders) -decoders 显示可用解码器 -encoders 显示可用编码器 -bsfs 显示可用比特流f

    2024年02月12日
    浏览(52)
  • 音视频 FFmpeg如何查询命令帮助文档

    ffmpeg:超快音视频编码器 ffplay:简单媒体播放器 ffprobe:简单多媒体流分析器 基本信息:ffmpeg -h 高级信息:ffmpeg -h long 所有信息:ffmpeg -h full 所有信息:ffplay -h 所有信息:ffprobe -h ffmpeg/ffplay/ffprobe部分参数通用,部分参数不通用,在使用时需要注意 推荐一个零声学院项目课,个

    2024年02月12日
    浏览(59)
  • 音视频 ffmpeg命令提取PCM数据

    提取PCM 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核) https://xxetb.xet.tech/s/VsFMs

    2024年02月09日
    浏览(57)
  • 音视频 ffmpeg命令直播拉流推流

    对于不是rtmp的协议 -c copy要谨慎使用 参数:-re,表示按时间戳读取文件 参考:Nginx搭建rtmp流媒体服务器(Ubuntu 16.04)https://www.jianshu.com/p/16741e363a77 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/

    2024年02月10日
    浏览(58)
  • 音视频学习之ffmpeg常用基础命令整理

    基于windows环境安装好必要的ffmpeg后,对ffmpeg基础命令进行一些了解:   有时候写入MP4文件会不成功,改成flv就好 1:视频裁剪:   2:文字水印: 编译的时候需要支持 FreeType、FontConfig、iconv,系统中需要有相关的子库, 在 FFmpeg 中增加纯字母水印可以使用 drawtext 滤镜进行支持

    2024年02月12日
    浏览(49)
  • 音视频开发实战03-FFmpeg命令行工具移植

    作为一个音视频开发者,在日常工作中经常会使用ffmpeg 命令来做很多事比如转码 ffmpeg -y -i test.mov -g 150 -s 1280x720 -codec libx265 -r 25 test_h265.mp4 ,水平翻转视频: ffmpeg -i src.mp4 -vf hflip -acodec copy -vcodec h264 -b 22000000 out.mp4 ,视频截取: ffmpeg -i input.wmv -ss 00:00:30.0 -c copy -t 00:00:10.0 ou

    2024年02月16日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包