命令行视频处理工具ffmpeg学习总结
处理视频是我经常进行得一个操作,但是需要下载大量得视频处理工具,而ffmpeg是个十分强大但是轻量得视频处理工具,通过在命令行里面输入一些指令,我们可以对视频进行许多操作。你可能对它并不了解,但是很多软件都利用了它的技术或者核心库,因此学习一下ffmpeg得使用还是十分有必要的。
介绍
FFmpeg是一个跨平台的命令行工具和开源软件项目,全称为"Free and Fossile Media Player",即自由和免费媒体播放器。它主要专注于音频和视频处理,功能非常强大,集成了音频和视频的编码、解码、转换、流媒体处理等多种功能。FFmpeg提供了丰富的命令行选项,操作灵活,且可以通过脚本进行自动化处理。对于开发者和音频/视频处理的爱好者来说,它是一个非常实用的工具。
FFmpeg的核心是用C语言编写的,可以在各种操作系统,包括Windows、Linux、Mac OS等上运行。它支持多种格式的音频和视频文件,如MP4、AVI、MKV、FLV、WMV、MP3、WAV、JPEG、PNG等。一些大型软件内置了ffmpeg的核心库,部分作用如下:
- 编码:将视频或音频文件转换为其他格式,如MP4到WebM,AAC到FLAC。
- 解码:播放不同格式的视频或音频,如从MP4播放FLV。
- 合并/分割:将多个文件合并成一个文件,或者将一个文件分割成多个片段。
- 转换:调整视频或音频的参数,如分辨率、比特率、帧率、音量等。
- 流媒体:处理HTTP直播和点播,如转码HLS或RTMP流。
- 音频和视频处理:添加水印、字幕,进行音频降噪、音频均衡等。
安装
- 你可以访问ffmpeg官网直接进行下载
- 你也可以通过命令行软件包来安装(以windows为例):
-
Scoop:
- 首先,你需要在你的计算机上安装Scoop。访问Scoop的GitHub页面(https://github.com/ScoopInstaller Scoop)并按照安装指南操作。
- 安装完成后,打开命令提示符(PowerShell或CMD),输入以下命令来安装FFmpeg:
scoop install ffmpeg
这将自动下载并安装最新版本的FFmpeg。
-
Winget:
- Winget需要在Windows 11上安装,如果你的系统是Windows 10,可能需要先更新到Windows 11。
- 打开命令提示符(以管理员身份运行),输入以下命令来安装FFmpeg:
winget install ffmpeg
或者,如果你知道FFmpeg的特定版本号,可以这样:
winget install ffmpeg --version <version>
请将
<version>
替换为你想要的FFmpeg版本号。
请确保网络连接良好,因为这些操作可能会下载大文件。安装完成后,你可以在命令提示符中通过ffmpeg --version
来检查安装是否成功。
使用
FFmpeg的命令行应用非常丰富,涵盖了音频和视频处理的各个方面。以下是一些主要的命令和功能:
-
视频处理:
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -c:a aac -b:a 128k output.mp4
:将MP4视频编码为H.264编码,设置码率,保留质量,输出为新的MP4文件。ffmpeg -vf "crop=width=1080:height=720" input.mp4 -c:a copy output.mp4
:裁剪视频到特定尺寸,保持音频不变。
-
音频处理:
ffmpeg -i input.mp3 -c:a copy -vn output.mp4
:只保留音频,不转换视频,将MP3文件转换为MP4。ffmpeg -af "volume=0.5" input.mp3 output.mp3
:降低音频音量。
-
流媒体:
ffmpeg -i input.mp4 -f flv -b:v 1000k -b:a 128k -hls_time 5 stream.m3u8
:将视频流转换为HLS格式,用于流媒体播放。ffmpeg -re -i source.mp4 -f flv -c copy server.flv
:实时编码视频流到FLV格式。
-
编码/解码:
ffmpeg -i input.mp4 -c:copy output.wav
:将MP4转换为WAV格式,保持原始编码。ffmpeg -i input.wav -c:a opus -b:a 64k output.mp3
:将WAV音频编码为Ogg Vorbis格式,设置新的比特率。
-
合并/提取:
ffmpeg -i "concat:file1.mp4|file2.mp4" -c copy output.mp4
:合并多个视频文件。ffmpeg -ss 00:00:05 -t 00:00:10 -i input.mp4 -vframes 10 output.jpg
:提取视频的特定时间片段。
-
音频/视频同步:
ffmpeg -i "concat:audio1.mp3|video1.mp4" -c:v copy -c:a aac -map 0:a:0 -map 0:v:0 output.mp4
:将音频和视频同步。
-
音频/视频转码:
ffmpeg -i input.mp4 -vf "scale=width=1920:height=1080" -c:v libx265 -crf 23 output.mp4
:将视频分辨率调整到1920x1080,同时进行H.265编码。
-
音频/视频流媒体:
ffmpeg -i source.mp4 -f hls -hls_list_size 10 -hls_time 5 -bsf:a aac_adtstoasc -bsf:v libx264 -c:v libx264 -preset slow -c:a aac -b:a 128k -hls_segment_filename playlist.m3u8
:生成HLS流媒体。
这些命令只是FFmpeg众多功能的一部分,具体使用时需要根据实际需求选择相应的参数。你可以查阅FFmpeg的官方文档。
个人看法
起初,我使用ffmpeg的目的仅仅是为了把视频和音频合并,我发现ffmpeg在这方面真的很好用,但是,后来我的需求不多了,我也就放下ffmpeg了,因为有一些集成ffmpeg的软件真的很好用,当然如果你想体验原汁原味的视频处理,也可以学学ffmpeg的命令行。
ʕ•ᴥ•ʔ
ʕ ᵔᴥᵔ ʔ
ʕ•̀ ω • ʔ
ʕ•̀ o • ʔ
本文作者:lcyc
本文链接:https://www.cnblogs.com/k33t/p/18184094
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步