FFmpeg 命令:从入门到精通 | ffmpeg 命令裁剪与合并视频

FFmpeg 命令:从入门到精通 | ffmpeg 命令裁剪与合并视频

  • FFmpeg 命令:从入门到精通 | ffmpeg 命令裁剪与合并视频
    • 裁剪生成测试文件
    • 拼接文件
    • 拼接不同编码的文件

FFmpeg 命令:从入门到精通 | ffmpeg 命令裁剪与合并视频

本节主要介绍了一些使用 ffmpeg 命令裁剪、合并视频的方法,并列举了一些例子。

裁剪生成测试文件

找三个不同的视频每个视频截取10秒内容:

ffmpeg -i 沙海02.mp4 -ss 00:05:00 -t 10 -codec copy 1.mp4
ffmpeg -i 复仇者联盟3.mp4 -ss 00:05:00 -t 10 -codec copy 2.mp4
ffmpeg -i 红海行动.mp4 -ss 00:05:00 -t 10 -codec copy 3.mp4

注:如果音视频格式不统一则强制统一为 -vcodec libx264 -acodec aac。

将上述 1.mp4 / 2.mp4 / 3.mp4转成 ts 格式:

ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -codec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i 3.mp4 -codec copy -vbsf h264_mp4toannexb 3.ts

转成flv格式:

ffmpeg -i 1.mp4 -codec copy 1.flv
ffmpeg -i 2.mp4 -codec copy 2.flv
ffmpeg -i 3.mp4 -codec copy 3.flv

分离某些封装格式(例如MP4 / FLV / MKV 等)中的 H.264 的时候,需要首先写入 SPS 和 PPS,否则会导致分离出来的数据没有 SPS、PPS 而无法播放。

H.264 码流的 SPS 和 PPS 信息存储在 AVCodecContext 结构体的 extradata 中。需要使用 ffmpeg 中名称为 h264_mp4toannexb 的 bitstream filter 处理。

拼接文件

以 MP4 格式进行拼接:

方法1:

ffmpeg -i "concat:1.mp4|2.mp4|3.mp4" -codec copy out_mp4.mp4 	

注:错误用法。

方法2:

ffmpeg -f concat -i mp4list.txt -codec copy out_mp42.mp4

mp4list.txt:

file '1.mp4'
file '2.mp4'
file '3.mp4'

以 TS 格式进行拼接:

方法1:

ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out_ts.mp4 	

方法2:

ffmpeg -f concat -i tslist.txt -codec copy out_ts2.mp4

tslist.txt:

file '1.ts'
file '2.ts'
file '3.ts'

以 FLV 格式进行拼接:

方法1:

ffmpeg -i "concat:1.flv|2.flv|3.flv" -codec copy out_flv.mp4

注:错误用法。

方法2:

ffmpeg -f concat -i flvlist.txt -codec copy out_flv2.mp4

flvlist.txt:

file '1.flv'
file '2.flv'
file '3.flv'

注:方法 1 只适用部分封装格式,比如 TS。

建议:

  1. 使用方法 2 进行拼接。
  2. 转成 TS 格式再进行拼接。

拼接不同编码的文件

修改音频编码:

ffmpeg -i 2.mp4 -vcodec copy -acodec ac3 -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out1.mp4 

结果第二段没有声音。

修改音频采样率:

ffmpeg -i 2.mp4 -vcodec copy -acodec aac -ar 96000 -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out2.mp4

第二段播放异常。

修改视频编码格式:

ffmpeg -i 1.mp4 -acodec copy -vcodec libx265 1.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out3.mp4 

修改视频分辨率:

ffmpeg -i 1.mp4 -acodec copy -vcodec libx264 -s 800x472 -vbsf h264_mp4toannexb 1.ts
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out4.mp4 

注意:

  1. 把每个视频封装格式也统一为 ts,拼接输出的时候再输出你需要的封装格式,比如 MP4。
  2. 视频分辨率可以不同,但是编码格式需要统一。
  3. 音频编码格式需要统一,音频参数(采样率/声道等)也需要统一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/93915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git使用【上】

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析3 前言 先前有些git命令我在我的其它文章里面已经写过,若要查看可参考【Linu…

蓝桥杯每日一题2023.9.28

AcWing 4409. 砍竹子 - AcWing 题目描述 题目分析 注:sqrtl的范围为long double,比sqrt更加精确 使用优先队列维护一段区间,如果连续一段相同就合并为一个区间,从大到小去枚举,每次先取出最大的一段,双…

Ubuntu中启动HDFS后没有NameNode解决办法

关闭进程: stop-dfs.sh 格式化: hadoop namenode -format 出现报错信息: 23/10/03 22:27:04 WARN fs.FileUtil: Failed to delete file or dir [/usr/data/hadoop/tmp/dfs/name/current/fsimage_0000000000000000000.md5]: it still exi…

Windows电脑多开器的优缺点对比

Windows电脑多开器是一种能够让用户同时运行多个应用程序、游戏或者网页的软件工具。它的作用在于让用户能够更加高效地工作、学习或者娱乐。但是,这种软件也存在一些优劣势的对比。 优点: 提升工作效率。多开器可以让用户同时打开多个应用程序或者网页…

libevent源码学习笔记

libevent源码学习笔记 libevent安装libevent源码解析(1)事件对象(2)事件操作(3)事件循环(4)事件处理 常用指令问题记录问题一:长连接的管理问题二:连接关闭问…

【云备份项目】:环境搭建(g++、json库、bundle库、httplib库)

文章目录 1. g 升级到 7.3 版本2. 安装 jsoncpp 库3. 下载 bundle 数据压缩库4. 下载 httplib 库从 Win 传输文件到 Linux解压缩 1. g 升级到 7.3 版本 🔗链接跳转 2. 安装 jsoncpp 库 🔗链接跳转 3. 下载 bundle 数据压缩库 安装 git 工具 sudo yum…

acwing1291题解(约数)

今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏. 贝茜让 N头奶牛(编号 11 到 N)坐成一个圈。 除了 11 号与 N 号奶牛外,i 号奶牛与 i−1 号和 i1 号奶牛相邻,N号奶牛与 11 号奶牛…

复习Day08:哈希表part01:242.有效的字母异位词、349. 两个数组的交集、1. 两数之和、160. 相交链表

之前的blog:https://blog.csdn.net/weixin_43303286/article/details/131765317 我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Labuladong的文章看。然后刷题不用…

2023年中国家用智能门锁市场发展概况分析:家用智能门锁线上市场销量290.4万套[图]

智能门锁是指区别于传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加智能化简便化的锁具。智能门锁是门禁系统中锁门的执行部件。智能门锁区别于传统机械锁, 是具有安全性, 便利性, 先进技术的复合型锁具。 智能门锁级别分类 资料来源:共研…

Linux使用之xshell、xftp保姆教学(含安装包,详细使用方法,连接失败解决方法)

前言 链接: FTP,SSH服务器介绍 这是我之前写的一篇博客,其中介绍了Ubuntu操作系统的一些常用命令以及服务器介绍,这篇文章就向大家详细介绍如何安装及应用这些服务器,我以xshell、xftp为例。 安装包,使用方法&#xf…

优化思考二

优化思考一_云湖在成长的博客-CSDN博客 翻到了两年前写文章,有了不一样的观点。 先说一样的想法吧:数据(输入)>>优化模型(处理)>>结果方案(输出)。优化是其中最重要的…

竞赛选题 大数据商城人流数据分析与可视化 - python 大数据分析

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据的基站数据分析与可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度…

Python - 等待异步函数完成

本文介绍如何创建异步函数并使用 await 关键字中断进程。 我们还将学习如何在 Python 中使用任务而不是线程。 使用 await 关键字并创建一个异步函数 异步编程不是多线程; 它不是多处理而是并发编程。 我们不会讨论并发编程的整个思想和整个编码模式,但我们会讨论基本原理以…

C/C++ 数据结构 - 链表

1.单链表 https://blog.csdn.net/qq_36806987/article/details/79858957 1 #include<stdio.h>2 #include<stdlib.h>3 4 /*结构体部分*/5 typedef struct Node6 {7 int data; //数值域8 struct Node *next; //指针域9 }N;10 11 N *Init() //初始化单…

unicode/utf8/utf16/utf32笔记

unicode表示的字符范围是0x0000~0x10FFFF&#xff0c;最多只需要有21位&#xff0c;但是为了字节对齐&#xff0c;所以最多需要32位(4字节) utf8/utf16/utf32都是表示unicode的一种编码方式。 utf8和utf16是变长编码&#xff0c;utf32不变长。utf-8编码长度为1&#xff0c;2&a…

Windows电脑上的多开软件:常见的有哪些?

在使用Windows电脑时&#xff0c;我们经常需要同时打开多个应用程序或者软件&#xff0c;但是Windows操作系统自带的多任务处理功能有时候不能完全满足我们的需求&#xff0c;因此多开软件就显得比较必要了。下面就来介绍一些常见的Windows电脑上的多开软件。 Safeboxie多开器&…

力扣-350.两个数组的交集||

Idea 首先遍历第一个数组&#xff0c;用哈希表存储每个数字及其出现的次数。 然后遍历第二个数组&#xff0c;每出现重复的数字&#xff0c;并判断该数字在哈希表的次数是不是大于0&#xff0c;如果大于则存入答案数组&#xff0c;并将哈希表次数减1&#xff0c;直接遍历结束。…

使用 Telegraf 进行综合监控

Telegraf 可以使用特定于应用程序的插件&#xff08;例如 NGINX 或 MySQL 的插件&#xff09;收集许多白盒指标&#xff0c;并且您可以使用 InfluxDB 客户端库来检测您的应用程序&#xff0c;但我们也可以使用 Telegraf 作为综合监控工具来监控我们的状态来自外部的系统。 HTT…

【强化学习】05 —— 基于无模型的强化学习(Prediction)

文章目录 简介蒙特卡洛算法时序差分方法Example1 MC和TD的对比偏差&#xff08;Bias&#xff09;/方差&#xff08;Variance&#xff09;的权衡Example2 Random WalkExample3 AB 反向传播(backup)Monte-Carlo BackupTemporal-Difference BackupDynamic Programming Backup Boot…

(unordered)map和set封装(底层红黑树)

map和set封装 文章目录 map和set封装设计问题&#xff08;知其所以然&#xff09;为什么要对iterator进行封装&#xff1f;为什么要引入Self Ref Ptr这些模板参数&#xff1f;为什么是试图从non_const转变为const&#xff0c;而不是const转为non_const如何解决 为什么说能加con…