当前位置: 首页 > news >正文

ffmpeg 从现有视频中截取一段

ffmpeg 从现有视频中截取一段

  • References

    1. ffmpeg -i ./input.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:25 ./output.mp4 -y
strong@foreverstrong:~/ForeverStrong$ ffmpeg -i ./train_video.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:25 ./output_train_video.mp4 -y
input: 输入视频文件名
output: 输出视频文件名
-vcodec copy: 使用与原视频一样的视频编解码器
-acodec copy: 使用与原视频一样的音频编解码器
-i: input file
-y: overwrite output files without asking
-to: 结束时间
-ss: 起始时间

上述命令从视频的第 10s (-ss 00:00:10) 开始截取,到视频的第 25s (-to 00:00:25) 结束,共计截出视频 15s.

    1. ffmpeg -ss 00:01:20 -t 00:00:30 -accurate_seek -i ./input.mp4 -vcodec copy -acodec copy ./output.mp4 -y
strong@foreverstrong:~/ForeverStrong$ ffmpeg -ss 00:01:20 -t 00:00:30 -accurate_seek -i ./train_video.mp4 -vcodec copy -acodec copy ./output_train_video.mp4 -y

截取时间段不准确,不建议使用。

input: 输入视频文件名
output: 输出视频文件名
-vcodec copy: 使用与原视频一样的视频编解码器
-acodec copy: 使用与原视频一样的音频编解码器
-i: input file
-y: overwrite output files without asking
-t: 截取时长
-ss: 起始时间

上述命令从视频的第 1 分 20 秒 (-ss 00:01:20) 开始截取,截取 30 秒 (-t 00:00:30) 视频。

截取速度快,因为它不会对视频重新编码,直接截取相关时间,导出视频。但是这种方式会导致:如果视频结尾不是关键帧,那么视频最后就会出现一段空白。

    1. ffmpeg -ss 00:01:20 -t 00:00:30 -accurate_seek -i ./input.mp4 -vcodec copy -acodec copy -avoid_negative_ts 1 ./output.mp4 -y
strong@foreverstrong:~/ForeverStrong$ ffmpeg -ss 00:01:20 -t 00:00:30 -accurate_seek -i ./train_video.mp4 -vcodec copy -acodec copy -avoid_negative_ts 1 ./output_train_video.mp4 -y

截取时间段不准确,不建议使用。

截取视频之后,空白视频消失,但是时间不会精确截取,它会找到下一个关键帧,补全这个视频,导致连续分割的视频之间存在细微的交集。

    1. ffmpeg -ss 00:01:20 -t 00:00:30 -i ./input.mp4 -c:v libx264 -c:a aac -strict experimental -b:a 98k ./output.mp4
strong@foreverstrong:~/ForeverStrong$ ffmpeg -ss 00:01:20 -t 00:00:30 -i ./train_video.mp4 -c:v libx264 -c:a aac -strict experimental -b:a 98k ./output_train_video.mp4 -y

截取时间段准确,建议使用。

如果需要精确截取视频,避免关键帧的丢失并精确截取时间,建议重新编码视频。

References

[1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

相关文章:

  • 【Node.js】短链接
  • 无线游戏手柄的测试(Windows11系统手柄调试方法)
  • 构建高可用性数据库架构:深入探索Oracle Active Data Guard(ADG)
  • 【Leetcode每日一题】 递归 - 二叉树剪枝(难度⭐⭐)(50)
  • DataLoader的使用
  • RabbitMQ3.13.x之七_RabbitMQ消息队列模型
  • 如何在Flutter应用中配置ipa Guard进行混淆
  • Spring之事务底层源码解析
  • 懒人必备!4个PS抠图技巧,让你轻松处理复杂背景!
  • 使用阿里云试用Elasticsearch学习:2.3 深入搜索——多字段搜索
  • JDK安全剖析之安全处理入门
  • 实践笔记-03 docker buildx 使用
  • 风电场智能化转型基于ARM工控机的HDMI数据实时监控显示
  • 牛客错题整理——C++
  • Android 应用启动过程
  • Akka系列(七):Actor持久化之Akka persistence
  • iOS 颜色设置看我就够了
  • Java 网络编程(2):UDP 的使用
  • php面试题 汇集2
  • 给Prometheus造假数据的方法
  • 开发基于以太坊智能合约的DApp
  • 如何合理的规划jvm性能调优
  • 使用 Docker 部署 Spring Boot项目
  • 写代码的正确姿势
  • #图像处理
  • $.ajax()参数及用法
  • (23)Linux的软硬连接
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (排序详解之 堆排序)
  • (篇九)MySQL常用内置函数
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET delegate 委托 、 Event 事件
  • .NET MVC 验证码
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .Net下的签名与混淆
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • /etc/shadow字段详解
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @Not - Empty-Null-Blank
  • @RequestParam详解
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [C#]winform部署PaddleOCRV3推理模型
  • [c]扫雷
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [CISCN2019 华东南赛区]Web11
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.