FFmpeg 是一款功能强大的跨平台多媒体框架,可用于各种音视频处理任务。它提供一系列命令行工具,用于转换、编辑、合并、拆分、滤镜、流化等操作。FFmpeg 开源免费,支持多种操作系统,包括 Windows、Linux 和 macOS。
可以执行音频和视频多种格式的录影、转换、串流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。
一、下载FFmpeg
1.下载FFmpeg
官网就可以下载 FFmpeg:(http://ffmpeg.org/download.html )
Windows系统的话,选择【Windows EXE Files】->【Windows builds from gyan.dev】。
页面上的都可以下载,比如我这直接下载【release builds】中的 ffmpeg-release-essentials.7z,目前最新的版本。如下图所示:
2.添加到环境变量
下载后是个压缩包,直接解压出来。比如我这解压出来是个 ffmpeg-5.0.1-essentials_build 目录,然后直接把这个目录下的bin目录添加到系统环境变量就行。(怎么添加环境变量,百度一下就有)
因为bin目录下有 ffmpeg.exe 可执行程序,我们在命令行里用 ffmpeg命令时,用的就是这个。
二、常用命令
1.音/视频格式转换
1 2 3 4 5
| ffmpeg -i input_video.mp4 output_video.avi
ffmpeg -i input.wav -codec:a libmp3lame -b:a 192k output.mp3
|
1 2 3 4 5
| 命令详解: -i input_video.mp4:指定输入视频文件。 output_video.avi:输出的视频文件。 -codec:a libmp3lame:指定使用libmp3lame编解码器进行MP3编码。 -b:a 192k:音频比特率192kbps。
|
2.从视频中提取音频
1
| ffmpeg -i input_video.mp4 -vn -acodec libmp3lame output_audio.mp3
|
1 2 3 4 5
| 命令详解: -i input.mp4:指定输入视频文件。 -vn:禁用视频流,只处理音频流。 -acodec libmp3lame:指定音频编解码器为LAME MP3。 output_audio.mp3:指定输出音频文件。
|
3.音/视频剪辑
1 2 3 4 5
| ffmpeg -i input_video.mp4 -ss 00:00:10 -to 00:00:20 -c copy output_video.mp4
ffmpeg -i input_audio.mp3 -ss 00:01:30 -to 00:01:45 -c copy output_clip.mp3
|
1 2 3 4
| 命令详解: -ss 00:01:30:指定剪辑的开始时间,这里是从1分30秒开始。 -to 00:01:45:指定剪辑的结束时间,这里是1分45秒。 -c copy:指定使用相同的音频编解码器和格式进行复制。
|
4.合并音视频
1 2 3 4
| ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4
ffmpeg -i video.mp4 -i audio.mp3 -c copy output.mp4
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| 命令详解: -i video.mp4:输入视频文件 -i audio.mp3:输入音频文件 -c:v copy:`-c:v`指定视频编解码器,copy表示直接复制视频流不重新编码。 -c:a aac:`-c:a`指定音频编解码器,aac表示将音频重新编码为AAC格式。 output.mp4:输出的视频文件
还可以添加其它参数: 1.音频延迟0.5秒(-itsoffset 0.5) ffmpeg -i video.mp4 -itsoffset 0.5 -i audio.mp3 -c:v copy -c:a aac output.mp4
2.音频音量减半(-filter_complex "[1:a]volume=0.5[a]") ffmpeg -i video.mp4 -i audio.mp3 -filter_complex "[1:a]volume=0.5[a]" -map 0:v -map "[a]" -c:v copy -c:a aac output.mp4
|
5.调整视频分辨率
1
| ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
|
1 2
| 命令详解: -vf scale=1280:720:分辨率调整为1280x720。
|
6.为视频添加字幕
1
| ffmpeg -i input.mp4 -vf subtitle=subtitle.srt output.mp4
|
1 2
| 命令详解: -vf subtitle=subtitle.srt:添加 subtitle.srt 字幕。
|
7.下载m3u8格式的视频
1 2 3 4 5
| ffmpeg -i m3u8地址 -c copy output.mp4
ffmpeg -i m3u8地址 -c copy -bsf:a aac_adtstoasc output.mp4
|
1 2 3 4
| 命令详解: -i m3u8地址:要下载的m3u8地址。 -c copy:复制音视频流,不重新编码。 -bsf:a aac_adtstoasc:用于对音频流进行格式转换,将AAC ADTS格式转换为AAC ASC格式。AAC ADTS格式常用于HTTP流传输,而AAC ASC格式常用于MP4文件。
|
8.合并多个音/视频文件
音频与视频是一样的,以下用视频举例。
1 2 3 4 5 6
| ffmpeg -i "concat:part1.mp4|part2.mp4|part3.mp4" -c copy output1.mp4
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output2.mp4
|
filelist.txt 文件内容如下:
1 2 3
| file 'F:\video\1.ts' file 'F:\video\2.ts' file 'F:\video\3.ts'
|
1 2 3 4 5 6
| 命令详解: -f concat:指定用 concat 格式。 -safe 0:允许文件名包含不安全字符(如空格)。 -i filelist.txt:输入文件列表。 -c copy:直接复制视频和音频流,不重新编码。 output2.mp4:输出文件。
|
三、博客内其它相关文章
yt-dlp与you-get、youtube-dl 这两差不多,yt-dlp 能下载包括油管视频在内的不少视频了。都是一款采用Python 编写的免费、开源、命令行程序,主要是用来下载视频的。