火车头 / 电脑网络 · 2022年02月7号 0

FFmpeg常用基本命令行

本文收集记录了笔者使用过的FFmpeg命令,亲测可用,并不是简单的copy别人的FFmpeg大全,下面的命令大部分都是本人测试成功过的,大家可以放心使用。

音视频技术是程序员日常生活中经常用到的,比如转码需求,同事下载的avi视频,电脑上没有播放器可以播放此格式的视频文件,那你就可以帮他把avi转成mp4格式,你两个就可以愉快的观看了;截取视频需求,录制视频后,可能不需要前面3秒和后面5秒,那就需要剪切或者拼接视频;想提取视频中的某一帧画面出来;不想看到视频画面,只想听到里面的声音,那就提取视频中的音频转为mp3;出于某种特殊的需求,你想倒着播放一段视频等等,太多太多了,再比如视频中加GIF,视频中加文字,抖音合拍功能,视频加速播放。上面的这些需求或者是想法,都可以用命令行轻松搞定,FFmpeg的强大,只有你想不到,没有他做不到。下面就列举了一些常用的简单命令,让我们一起看一下吧,另外看完后,最好是动手去实践一番。

欢迎大家关注文明的iOS开发公众号:
方式1、搜索:“iOS开发by文明”
方式2、扫描下方二维码

一、获取视频信息

二、分离视频音频流

三、视频转码相关

四、图像处理相关

五、视频方向处理相关

六、视频剪切相关

七、倒放音视频&加速视频&减速视频
八、视频拼接

 

这里全部以mp4文件为例子,介绍两种方法,如果不是mp4文件,可以尝试先转码为mp4后再拼接起来

1、将 mp4 先转码为 mpeg文件,mpeg是支持简单拼接的,然后再转回 mp4。

 

2、使用ts拼接

先将 mp4 转化为同样编码形式的 ts 流,因为 ts流是可以 concate 的,先把 mp4 封装成 ts ,然后 concate ts 流, 最后再把 ts 流转化为 mp4。

九、视频的合并

下面通过动手实现抖音合拍功能来演示命令行的使用,首先准备好两个文件input1和input2,都是用手机拍摄的,高度相同;

1、两个视频的合并(注意参数hstack代表是横向合并,也就是左右合并,横向合并的形象类比为“川”;如果是竖向合并,也就是上下合并,用参数vstack,竖向或者纵向合并的形象类比为“三”)

2、提取视频中的音频并合并音频

3、把audio3.mp3文件合并到output.mp4中去

ffmpeg -i output.mp4 -i audio3.mp3 -c:v copy -c:a aac -strict experimental success.mp4

最后我们得到的success.mp4就是合拍视频,包含了两个视频的音频。

 

三个视频合并(input=3表示希望合并的视频的个数)

常用参数说明:

命令格式:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[options][`-i’ input_file]]… {[options] output_file}…
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
(3)mpegts: 表示ts视频流

主要参数:
-i 设定输入流
-f 设定输出格式
-ss 开始时间
视频参数:
-b 设定视频流量,默认为200Kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器,一般后面加copy表示拷贝

音频参数:
-ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器,一般后面加copy表示拷贝

-an 不处理音频
————————————————
版权声明:本文为CSDN博主「文明的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wenmingzheng/article/details/88373192