FFmpeg常用命令指南
内容提要
FFmpeg是一个功能强大的多媒体处理工具,可以进行视频格式转换、音频提取、视频剪辑、合并视频文件等操作。它还可以调整视频分辨率、添加水印、转换音频格式、控制比特率、添加字幕等。此外,FFmpeg还可以处理m3u8格式的视频文件,旋转视频、调整音量、改变视频帧率、将视频转换为GIF动画以及剪辑音频文件。
延伸解读
命令参数解析:-c copy 的作用与适用场景
在视频剪辑、合并和音频剪辑命令中,都使用了 -c copy 参数。它的作用是直接复制原始流而不重新编码,因此处理速度极快且不会损失画质。但需注意,它要求输入和输出格式兼容,且剪辑点只能定位到关键帧,可能导致时间不精确。若需要精确剪辑,应去掉 -c copy 并指定编码器。
m3u8 处理:切片与下载的实用要点
文章介绍了 m3u8 的切片和下载命令。切片时,-hls_time 控制每个分片的时长,-hls_list_size 0 表示保留所有分片。下载 m3u8 时,使用 -c copy 直接复制流,速度快且无损。但需注意,若 m3u8 包含加密或特殊编码,可能需要额外参数。自定义切片命令中,-g 48 设置关键帧间隔,与 -hls_time 配合可优化分片。
视频转 GIF:参数调整与质量权衡
视频转 GIF 命令中,fps=10 控制帧率,scale=320:-1 将宽度缩放为 320 像素并保持宽高比,flags=lanczos 指定缩放算法。降低帧率和分辨率可减小 GIF 体积,但会牺牲流畅度和清晰度。若需更高质量,可提高 fps 和宽度,但文件会显著增大。此命令未包含调色板优化,可能影响颜色表现。
旋转视频:transpose 参数详解
旋转视频使用 transpose 滤镜,参数 0-3 对应不同旋转方向。其中 0 和 2 会额外进行垂直翻转,容易混淆。若只需简单旋转 90 度,应使用 1(顺时针)或 3(逆时针)。注意,旋转后视频的元数据可能不会自动更新,某些播放器可能仍按原始方向显示,需用其他工具修正旋转标志。
Q&A
如何查看媒体文件的信息?
使用命令:ffmpeg -i input.mp4,可以查看文件的格式、编码信息、分辨率等详细信息。
如何将视频格式从MP4转换为AVI?
使用命令:ffmpeg -i input.mp4 output.avi,可以将MP4文件转换为AVI格式。
如何从视频中提取音频?
使用命令:ffmpeg -i input.mp4 -q:a 0 -map a output.mp3,可以将视频中的音频提取为MP3格式。
如何合并多个视频文件?
首先创建一个文本文件列出所有待合并文件,然后使用命令:ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4。
如何在视频上添加水印?
使用命令:ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4,可以在视频的左上角添加水印。
如何将视频转换为GIF动画?
使用命令:ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif,可以将视频转换为GIF动画。