使用ffmpeg截取视频片段

news/2024/7/10 20:51:20 标签: ffmpeg, 截取视频, 音视频

本文将介绍2中使用ffmpeg截取视频的方法

  1. 指定截取视频开始时间结束时间,进行视频截取
  2. 指定截取视频开始时间截取的秒数,进行视频截取

两种截取方式的命令行如下

截取某一时间段视频

优先使用

ffmpeg -i ./input.mp4 -c:v libx264 -crf 18 -ss 00:00:10 -to 00:00:15 ./cut_out.mp4

或下面这种(不推荐使用)

ffmpeg -i ./input.mp4 -c:v copy -c:a copy -ss 00:00:10 -to 00:00:15 ./cut_out.mp4

字段说明

-i ./input.mp4  指定输入视频路径
-ss 00:00:10  指定截取视频的开始时间点
-to 00:00:15  指定截取视频的结束时间点
./cut_out.mp4 指定截取视频保存路径与文件名
-c:v libx264 -crf 18  指定使用H264标准 crf=18模式对原视频中的视频片段进行重新编码,从而得到截取视频
-c:v copy -c:a copy  不进行重新编码,直接拷贝原视频中的视频片段,保存为截取视频

除非对保持原始视频码流有强烈需求,否则不推荐使用-c:v copy 进行视频截取
原因:ffmpeg在使用-c:v copy对原视频码流进行直接截取时,并不是按照指定时间截取的,而是从指定时间附近的 I I I帧开始截取和终止(可查看右侧文章链接,了解IBP帧的含义: 什么是I帧、P帧和B帧?)。这样就会出现两个问题:

  1. 截取出来的视频片段时间长度与 指定的时间不同
  2. 截取的时间长度相同,但可能在使用部分播放器播放视频时,前几秒一直停顿在相同画面,等待播放了一段时间后,画面才恢复正常

使用-c:v libx264 的方式截取视频,其实是对指定的原始视频片段进行重新编码。通过指定-crf 18来保证编码视频的画面质量与原视频近似相同。
这种方式的优点是:截取视频的时间长度与指定时刻完全相同,且视频能正常播放
缺点是:视频画面与原始视频会存在轻微细小差异(毕竟重新编码了┓( ´∀` )┏)
如果对原视频画面没有特别强烈的需求,建议采用这种方式进行截取。

截取特定长度的视频

优先使用

ffmpeg -i ./input.mp4 -c:v libx264 -crf 18 -ss 00:00:10 -t 15 ./cut_out.mp4

或下面这种(不推荐使用)

ffmpeg -i ./input.mp4 -c:v copy -c:a copy -ss 00:00:10 -t 15 ./cut_out.mp4

str = "5134f58d-bde8-455b-bd5d-34bfbc99c349"

字段说明

-t 15  指定截取视频的秒数
其它字段与上方描述一致

http://www.niftyadmin.cn/n/4986639.html

相关文章

改进YOLO系列:11.添加CrissCrossAttention注意力机制

添加CrissCrossAttention注意力机制 1. CrissCrossAttention注意力机制论文2. CrissCrossAttention注意力机制原理3. CrissCrossAttention注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. CrissCrossAttention注意力机制论文 论文题目:CCNet: Cris…

软件测试/测试开发丨Python 学习笔记 之 链表

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/26458 链表与数组的区别 复杂度分析 时间复杂度数组链表插入删除O(n)O(1)随机访问O(1)O(n) 其他角度分析 内存连续,利用CPU的机制&#xff0…

【紫光同创国产FPGA教程】——【PGL22G第六章】密码锁实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL22G开发平台(盘古22K) 一:盘古22K开发板(紫光同创PGL22G开发…

ChatGPT⼊门到精通(6):ChatGPT 提问设计

前⾔ 学会提问就是为了让AI给出⾼质量的答案。 你所学到的技能⼀切为了⽣成⾼质量的答案。 本教程适合:普通ChatGPT的⽤户、专业prompt⼯程师 你将收获:prompt 技巧的全⾯指导 、prompt⼯程师必备技能、prompt技术⼯程⾼质量答 案完全指南 提⽰词 Prom…

ICCV 2023 | 小鹏汽车纽约石溪:局部上下文感知主动域自适应LADA

摘要 主动域自适应(ADA)通过查询少量选定的目标域样本的标签,以帮助模型从源域迁移到目标域。查询数据的局部上下文信息非常重要,特别是在域间差异较大的情况下,然而现有的ADA方法尚未充分探索这一点。在本文中&#…

Orchestrator介绍5-配置文件解释

1 配置文件解释 Debug bool // 是否运行在debug模式下 ,输出更详细 。在命令行中使用 --debug 是一样的效果 EnableSyslog bool // 是否将日志输出到系统日志 ListenAddress …

Spring Session中会将会话ID记录到标准输出流中危漏洞CVE-2023-20866

文章目录 0.前言漏洞受影响的Spring产品和版本 1.参考文档2.基础介绍描述 3.解决方案3.1. 升级版本 4.HeaderHttpSessionIdResolver 解析5. Spring Session 使用教程 0.前言 背景:公司项目扫描到 CVE-2023-20866:在Spring Session中会将会话ID记录到标准…

spring的后置处理器BeanPostProcessor

什么是BeanPostProcessor 是spring IOC容器给我们提供的一个扩展接口在调用初始化方法前后对bean进行额外加工,ApplicationContext会自动扫描实现了BeanPostProcessor的bean,并注册这些bean为后置处理器是bean的统一前置后置处理而不是基于某一个bean 执…