ffmpeg 命令的简单使用

这篇具有很好参考价值的文章主要介绍了ffmpeg 命令的简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ffmpeg命令是在windows端使用的,使用前,需要先下载对应的 exe文件

1.准备环境

访问FFmpeg官网的下载地址(https://www.gyan.dev/ffmpeg/builds/)下载对应的压缩包,解压后即可使用

ffmpeg 命令的简单使用

 2.使用

ffmpeg.exe的使用

ffmpeg命令可以转化各种格式的多媒体文件。
按照功能分类可以分为如下常用几种类型

  1. 信息查询部分

  2. 通用参数

  3. 视频参数

  4. 音频参数

可以通过ffmpeg --help查看支持的上述命令
查询参数的部分如下:

-formats            show available formats
-muxers             show available muxers
-demuxers           show available demuxers
-devices            show available devices
-codecs             show available codecs
-decoders           show available decoders
-encoders           show available encoders
-bsfs               show available bit stream filters
-protocols          show available protocols
-filters            show available filters
-pix_fmts           show available pixel formats
-layouts            show standard channel layouts
-sample_fmts        show available audio sample formats
-colors             show available color names

通用参数
-i filename  指定输入文件名  
-y           覆盖同名的输出文件
-f fmt       指定音/视频的格式
-t duration  指定输出音/视频的时长,单位秒
-to time_stop 指定输出音/视频结束点,单位秒
-fs limit_size  限定输出文件大小
-ss time_off    指定输出音/视频的开始时间点,单位秒,也支持hh:mm:ss的格式


音频参数
-aq quality   指定输出音频的质量
-ar rate      指定音频采样率 (单位 Hz)
-ac channels  指定音频声道数量
-an           输出的文件不带音频
-acodec codec 指定输出的音频编码类型('copy' to copy stream)
-vol volume    指定音频的音量 (256=normal)
-af filter_graph    指定音效
-ab    指定输出音频的比特率

视频参数
-r rate   指定帧率 (单位Hz )
-s size   指定分辨率 (WxH)
-aspect aspect  指定宽高比(4:3, 16:9 or 1.3333, 1.7777)
-vn           指定输出文件不包含视频
-vcodec codec 指定输出视频的编码格式 ('copy' to copy stream)
 
-vf filter_graph 指定视频滤镜
-ab bitrate      指定音频比特率 (please use -b:a)
-b bitrate   指定比特率,若指定该值为平均比特率 (please use -b:v)
-vb 指定视频比特率

最简单的命令

ffmpeg -i input.avi -b:v 640k output.ts 

该命令将input.avi文件转换为output.ts文件,并将output.ts文件视频的码率设置为640kbps。
所有的参数都是以键值对的形式指定的。例如输入文件参数是“-i”,而参数值是文件路径;输出视频码率参数是“-b:v”,而参数值是视频的码率值。但是注意位于最后面的输出文件路径前面不包含参数名称。

ffmpeg 命令的简单使用

常用场景 

1. flac格式 --》转成mp3

ffmpeg -i in.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 out.mp3
输入的音频文件为in.flac,指定编码格式为libmp3lame(即mp3的编码库),音频采样率44100,比特率为320kb/s,声道数量为2,输出文件为out.mp3

2. 转换视频格式

ffmpeg -i in.mov -s 1920x1080 -pix_fmt yuv420p -vcodec libx264 -preset medium -profile:v high -level:v 4.1 -crf 23 -acodec aac -ar 44100 -ac 2 -b:a 128k out.mp4
码率控制模式: -qp -crf -b

-qp(Constant Quantizer)恒定量化器模式
-crf(Constant Rate Factor) 恒定速率因子模式
-b (bitrate) 固定目标码率模式

VBR(Variable Bit Rate)动态比特率 简单的给少些码率、负责的多放些码率

CBR(Constant Bit Rate)恒定比特率 在vbr的基础上改进 码率固定在一个值上

3. 提取视频

ffmpeg -i in.mp4 -vcodec copy -an v.mp4
还可以从视频文件中直接提取出裸h264数据
ffmpeg -i in.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb out.h264
其中mp4toannexb是一种bitmapfilter类型

4. 提取音频

ffmpeg -i in.mp4 -acodec copy -vn a.m4a
如果多个音频流 通过 -map 0:3来分别提取

eg
Stream #0:2[0x81]:Audio:ac3,48khz,5.1,s16,384kb/s
Stream #0:3[0x82]:Audio:ac3,48khz,5.1,s16,384kb/s
Stream #0:4[0x80]:Audio:ac3,48khz,5.1,s16,384kb/s

再合并回去

ffmpeg -i a.m4a -i v.mp4 -c copy out.mp4

5. 截取

ffmpeg -i in.mp3 -ss 00:01:00 -to 00:10:00 -acodec copy out.mp3
或者
ffmpeg -i in.mp3 -ss 00:01:00 -t 10 -acodec copy out.mp3
把-ss放在-i之前,ffmpeg会启用关键帧技术,加速它的操作,但这样提取出来的时期,在播放时显示的起止不一定准确,可以通过 -copyts 拷贝时间戳,保证时间的正确性

ffmpeg -i in.mp3 -ss 00:01:00 -to 00:10:00 -acodec copy out.mp3
ffmpeg  -ss 00:01:00 -i in.mp3 -to 00:10:00 -acodec copy out.mp3
ffmpeg  -ss 00:01:00 -i in.mp3 -to 00:10:00 -acodec copy-copyts out.mp3
还可以截取多个文件

ffmpeg -i video.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -t 10 -codec copy small-2.mp4 -y

6. 把多个视频连接成一个视频 

多个视频的宽高、码率一致

ffmpeg -i "concat:01.mp4|02.mp4|03.mp4" -c copy out.mp4
如果参数不一致推荐使用Avidemux这款软件处理

7. 截图

ffmpeg -i in.mp4 -ss 5 -vframes 1 img.jpg
上述指令是指 在第五秒截图

还可以采用更加方便的方式截一系列的图

ffmpeg -i in.mp4 -r 0.25  frames_%04d.png
上述命令指定每4秒截取一帧画面生成一张图片,

8. 水印

ffmpeg -i in.mp4 -i logo.png -filter_complex "overlay=20:20" out.mp4
通过两个-i指定两个输入源,一个是视频,一个是水印,通过filter_complex指定水印的位置

9. 动图

ffmpeg -i in.mp4 -ss 7.5 -to 8.5 -s 640x320 -r 15 out.gif
指定分辨率为640x320,帧率为15

或者可以通过如下命令指定宽高

ffmpeg -i in.mp4 -vf scale=100:-1 -t 5 -r 10 out.gif
宽高比不变,宽度指定为100

还可以把一组图片生成一张动图

ffmpeg -i frames_%04d.png -r 5 out.gif

 10.淡入淡出效果

给一个音频做一个淡入的效果,可以通过如下命令

ffmpeg -i music.mp3 -filter_complex afade=t=in:ss=0:d=5 music11.mp3
前5秒做个淡入效果

淡出效果可以采用如下命令

ffmpeg -i music.mp3 -filter_complex afade=t=out:st=200:d=5 music22.mp3
从200秒开始做5秒的淡出效果

11. 倍速 

两倍速处理音频

ffmpeg -i music.mp3 -filter_complex atempo=2 out1.mp3 -y
0.5倍速处理音频

ffmpeg -i music.mp3 -filter_complex atempo=0.5 out1.mp3 -y

12.混音 

将两个声音进行合并

ffmpeg -i music.mp3 -i bg.mp3 -filter_complex amix=inputs=2:duration=shortest out.mp3

ffplay.exe的使用
• 功能
ffplay.exe用于音视频的播放。

最简单的命令

ffplay video.mp4播放视频
ffplay video.mp4 -loop 3 循环播放三次

设置音视频同步方式
音视频常用的方案有三种 以音频为基准(默认)、以视频为基准、以外部时钟为基准。

ffplay video.mp4 -sync audio
ffplay video.mp4 -sync video
ffplay video.mp4 -sync ext


该命令将播放当前文件夹下的input.avi文件。

• 命令格式

ffplay {输入文件路径} 
ffplay.exe的参数格式和ffmpeg.exe是类似的。所有的参数都是以键值对的形式指定的(由于不包含输出文件,所以只能指定输入参数)。注意位于最后面的输入文件路径前面不包含参数名称。

快捷键

ffmpeg 命令的简单使用

 ffprobe的使用

ffprobe主要用于查看音视频文件信息,它与mediaInfo的区别就是:ffprobe可以查看直播流的音视频数据信息。

其中ffprobe常用于查看  fomat、frames、packets

常用命令文章来源地址https://www.toymoban.com/news/detail-423710.html

第一种:查看fomat

ffprobe -show_format input.mp4
input.mp4可换为其它视音频文件或者直播流地址。

第二种:查看frames

ffprobe -show_frames input.mp4
input.mp4可换为其它视音频文件或者直播流地址。

第三种:查看packets

ffprobe -show_packets input.mp4
input.mp4可换为其它视音频文件或者直播流地址。

提示:在查看直播流时或者音视频文件数据太多,记得ctrl+C可以停止打印
ffprobe C:\Users\sdt16354\Desktop\maybe.mp3

到了这里,关于ffmpeg 命令的简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ffmpeg的使用不简单

    ffmpeg功能强大,它的使用实在是不简单。看看它随带的使用说明有多少?能不能看懂? 应该怎样使用?怎样灵活使用? Universal media converter usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Getting help:     -h      -- print basic options     -h long -- print more options

    2024年03月18日
    浏览(26)
  • FFmpeg常见命令行(一):FFmpeg工具使用基础

    在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》。本文是Android音视频任务列表的其中一个, 对应的要学习的内容是:FFmpeg常见命令行(一):FFmpeg工具使用基础 音视频任务列表: 点击

    2024年02月14日
    浏览(28)
  • 【FFmpeg】ffmpeg 命令行参数 ⑤ ( 使用 ffmpeg 命令提取 音视频 数据 | 保留封装格式 | 保留编码格式 | 重新编码 )

    使用 ffmpeg 命令 从 视频数据 中 提取 音频数据 / 视频数据 保留封装格式 , 封装格式 指的就是 封装 视频数据 的 容器 ; 一个 mp4 格式的视频 , 其 封装容器 就是 mp4 容器 , 其中 封装了 h.264 格式的视频数据 和 aac 格式的 音频数据 ; 执行 命令 , 从 input.mp4 输入文件中 , 提取 音频

    2024年03月23日
    浏览(42)
  • ffmpeg命令行使用

    视频名字这里输入前几个字符按 tab 键可以自动补全 返回结果: 红框之内的内容没什么用 编码器 :encoder : Lavf57.25.100 持续时间:Duration: 00:14:20.58, start: 0.000000, bitrate: 381 kb/s Duration 持续时间,start 开始时间,bitrate比特率 视频流: Stream #0:0(und): Video: h264 (Constrained Baseline) (av

    2023年04月08日
    浏览(16)
  • Windows编译和使用ffmpeg

    ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。其实 ffmpeg 只是对该框架的通俗称呼,该框架本质上为 libav,ffmpeg 也只是基于 libav 开发的一套工具。libav 框架可以编译在其他平台进行使用,在下载的源码中,包含有 configure 程序来进行

    2023年04月08日
    浏览(29)
  • 使用 ffmpeg 命令将视频转图片

    因为要从视频中提取只出现了一瞬间的画面,所以需要将视频转为图片。这里就使用 ffmpeg 进行操作,FFmpeg 配置参考:https://blog.csdn.net/BeanGo/article/details/128918136 我这里是在 Windows 下使用,之前有配置过 ffmpeg,直接使用就行。 注: Windows 下路径连接用 “”,Linux 下用 “/”

    2024年02月11日
    浏览(31)
  • 使用ffmpeg命令进行视频格式转换

    FFmpeg 是一个非常强大和灵活的开源工具集,用于处理音频和视频文件。它提供了一系列的工具和库,可以用于录制、转换、流式传输和播放音频和视频。 FFmpeg 主要特点如下: 格式支持广泛:FFmpeg 支持几乎所有的音频和视频格式,包括非常流行的格式如 MP4, AVI, MOV, MP3, AAC 等

    2024年02月04日
    浏览(31)
  • 使用ffmpeg拼接两段音频的命令

    ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex \\\"[0:a][1:a]concat=n=2:v=0:a=1[out]\\\" -map \\\"[out]\\\" output.mp3 其中, input1.mp3 和 input2.mp3 是需要拼接的两段音频文件名, output.mp3 是输出文件名。 该命令使用 filter_complex 过滤器来将两个输入流连接在一起,其中 [0:a] 表示第一个输入文件的音频流, [1

    2024年02月12日
    浏览(30)
  • Window10下FFMPEG的安装与使用

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从

    2024年02月02日
    浏览(30)
  • 【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

    在 Windows 系统中 , 使用 ffmpeg 命令 录制 音视频 , 需要先获取 系统的 音视频设备 信息 , 录制 音视频 本质上是从 系统音视频设备 中获取数据 ; 执行 命令 , 可以获取 系统中 ffmpeg 可用的 DirectShow 音视频输入设备 ; 命令参数解析 : -list_devices true : 列出所有 ffmpeg 的 指定类型的可

    2024年04月25日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包