小Q的博客

  • 首页
  • net编程
    • 产品和框架
    • 开发实例
    • 经验技巧
    • 开源组件
  • wp独立站
  • 自媒体
  • 日记本
  • 工具箱
每个程序员,都应该有一个自己的博客站
  1. 首页
  2. net编程
  3. 经验技巧
  4. 正文

ffmpeg教程 2.命令行语法,一句话就能实现

2023年3月11日 135点热度 0人点赞 0条评论

今天继续学习ffmpeg教程,关于命令行工具的。其实调用ffmpeg很简单,不需要什么操作界面,一句命令行就可以解决。比如查看音视频的信息,用(-i input.mp4)这一句代码就可以实现,是不是很简单?它本身有很多命令,可以理解成C#中的关键字,比如-vcodec、-acodec、-ss、-t等。这篇主要介绍这些命令行的关键字

目录

  • 1、常用命令行
    • 1.1、查看音视频文件信息
    • 1.2、视频格式转换
    • 1.3、视频编解码
    • 1.4、音频编解码
    • 1.5、视频转码
    • 1.6、视频剪切
    • 1.7、视频裁剪
    • 1.8、视频旋转
    • 1.9、视频水印
    • 1.10、视频缩放
    • 1.11、分离音视频命令
    • 1.12、合并音视频
    • 1.13、裁剪视频
  • 2、命令行参数的详解

1、常用命令行

1.1、查看音视频文件信息

ffmpeg -i input.mp4

1.2、视频格式转换

ffmpeg -i input.mp4 output.avi

1.3、视频编解码

ffmpeg -i input.mp4 -vcodec h264 output.mp4

1.4、音频编解码

ffmpeg -i input.mp4 -acodec aac output.mp4

1.5、视频转码

ffmpeg -i input.mp4 -vcodec h264 -acodec aac output.mp4

1.6、视频剪切

即剪切视频文件的指定时间段

ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 output.mp4

1.7、视频裁剪

裁剪视频文件的指定区域

ffmpeg -i input.mp4 -vf crop=640:360:0:0 output.mp4

1.8、视频旋转

即将视频文件旋转指定角度

ffmpeg -i input.mp4 -vf rotate=90 output.mp4

1.9、视频水印

即给视频添加水印

ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=10:10 output.mp4

1.10、视频缩放

即调整视频的尺寸大小

ffmpeg -i input.mp4 -vf scale=320:240 output.mp4

1.11、分离音视频命令

即可以将视频文件中的音频和视频分离出来

ffmpeg -i input.mp4 -vn -acodec copy audio.mp3
ffmpeg -i input.mp4 -an -vcodec copy video.mp4

上述命令将 MP4 格式的文件分离出音频和视频,一个命令只输出音频,另一个命令只输出视频。

1.12、合并音视频

即可以将多个音频或视频文件合并成一个

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a] concat=n=3:v=1:a=1" output.mp4

上述命令将三个 MP4 格式的文件合并成一个。

1.13、裁剪视频

即可以将视频文件裁剪成指定的长度

ffmpeg -i input.mp4 -ss 00:00:05 -t 00:00:10 -c copy output.mp4

上述命令将 MP4 格式的文件从第 5 秒开始裁剪,裁剪长度为 10 秒。

以上就是ffmpeg常用命令行语法。在在处理不同的任务时,需要对这些语法叠加使用。下面是一些常用的FFmpeg命令行参数的详解:

2、命令行参数的详解

-i:指定输入文件路径,可以是本地文件路径或者网络路径,例如:ffmpeg -i input.mp4。
-f:指定输入/输出文件格式,例如:ffmpeg -f mp4 -i input.flv output.mp4。
-vcodec:指定视频编解码器,例如:ffmpeg -i input.mp4 -vcodec copy output.mp4。
-acodec:指定音频编解码器,例如:ffmpeg -i input.mp4 -acodec copy output.mp4。
-ss:指定起始时间,例如:ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 output.mp4,表示从第1分钟开始截取30秒。
-t:指定持续时间,例如:ffmpeg -i input.mp4 -t 00:00:30 output.mp4,表示截取前30秒。
-s:指定分辨率大小,例如:ffmpeg -i input.mp4 -s 640x360 output.mp4。
-r:指定帧率,例如:ffmpeg -i input.mp4 -r 24 output.mp4。
-b:v:指定视频码率,例如:ffmpeg -i input.mp4 -b:v 500k output.mp4,表示视频码率为500k。
-b:a:指定音频码率,例如:ffmpeg -i input.mp4 -b:a 128k output.mp4,表示音频码率为128k。
-filter_complex:指定复杂滤镜,例如:ffmpeg -i input.mp4 -filter_complex "[0:v]scale=640:360[v];[v]copy[v1];[v1]copy[v2]" -map "[v2]" output.mp4,表示将输入视频缩放为640x360,并复制为两份输出。
-map:指定输入/输出流,例如:ffmpeg -i input.mp4 -map 0:v -map 0:a output.mp4,表示将输入文件中的视频和音频流都输出到输出文件中。

 

相关阅读

ffmpeg教程 1.基础知识 能处理图片、音频和视频

标签: ffmpeg教程 命令行参数
最后更新:2023年3月11日

小Q

80后中年不油腻大叔,喜欢编写代码、打羽毛球、做木制玩具。目前定居浙江杭州

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 小Q的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2022019157号-2