命令行视频处理工具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的核心库,部分作用如下:

  1. 编码:将视频或音频文件转换为其他格式,如MP4到WebM,AAC到FLAC。
  2. 解码:播放不同格式的视频或音频,如从MP4播放FLV。
  3. 合并/分割:将多个文件合并成一个文件,或者将一个文件分割成多个片段。
  4. 转换:调整视频或音频的参数,如分辨率、比特率、帧率、音量等。
  5. 流媒体:处理HTTP直播和点播,如转码HLS或RTMP流。
  6. 音频和视频处理:添加水印、字幕,进行音频降噪、音频均衡等。

安装

  1. 你可以访问ffmpeg官网直接进行下载
  2. 你也可以通过命令行软件包来安装(以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的命令行应用非常丰富,涵盖了音频和视频处理的各个方面。以下是一些主要的命令和功能:

  1. 视频处理

    • 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:裁剪视频到特定尺寸,保持音频不变。
  2. 音频处理

    • ffmpeg -i input.mp3 -c:a copy -vn output.mp4:只保留音频,不转换视频,将MP3文件转换为MP4。
    • ffmpeg -af "volume=0.5" input.mp3 output.mp3:降低音频音量。
  3. 流媒体

    • 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格式。
  4. 编码/解码

    • 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格式,设置新的比特率。
  5. 合并/提取

    • 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:提取视频的特定时间片段。
  6. 音频/视频同步

    • ffmpeg -i "concat:audio1.mp3|video1.mp4" -c:v copy -c:a aac -map 0:a:0 -map 0:v:0 output.mp4:将音频和视频同步。
  7. 音频/视频转码

    • ffmpeg -i input.mp4 -vf "scale=width=1920:height=1080" -c:v libx265 -crf 23 output.mp4:将视频分辨率调整到1920x1080,同时进行H.265编码。
  8. 音频/视频流媒体

    • 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 中国大陆许可协议进行许可。

posted @   whiphi  阅读(47)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑