搬瓦工 FFmpeg 视频转码处理完整教程

FFmpeg 是最强大的开源多媒体处理工具,几乎支持所有的音视频格式和编解码器。在搬瓦工 VPS 上安装 FFmpeg 后,你可以进行视频转码、格式转换、分辨率调整、字幕嵌入、视频裁剪拼接等各种操作。本文将全面介绍 FFmpeg 的安装方法和常用命令。

一、安装 FFmpeg

1.1 通过包管理器安装

# Ubuntu/Debian
apt update
apt install ffmpeg -y

# 验证安装
ffmpeg -version

1.2 通过 Docker 使用

如果需要最新版本的 FFmpeg,可以使用 Docker 镜像:

# 使用 FFmpeg Docker 镜像
docker run --rm -v $(pwd):/work -w /work linuxserver/ffmpeg \
  -i input.mp4 -c:v libx264 output.mp4

1.3 安装静态编译版

也可以直接下载预编译的静态版本:

wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar xf ffmpeg-release-amd64-static.tar.xz
cp ffmpeg-*-static/ffmpeg /usr/local/bin/
cp ffmpeg-*-static/ffprobe /usr/local/bin/

二、查看媒体信息

# 查看视频详细信息
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

# 简洁显示
ffprobe -v error -show_entries format=duration,size,bit_rate \
  -show_entries stream=codec_name,width,height,bit_rate input.mp4

三、格式转换

3.1 基本格式转换

# MKV 转 MP4(不重新编码,速度极快)
ffmpeg -i input.mkv -c copy output.mp4

# AVI 转 MP4(重新编码)
ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4

# 视频转 GIF
ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1" -loop 0 output.gif

# 提取音频
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3

3.2 H.265/HEVC 编码

# H.264 转 H.265(压缩率更高)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a copy output_h265.mp4

# 指定编码预设
ffmpeg -i input.mp4 -c:v libx265 -preset medium -crf 26 -c:a aac output.mp4

四、分辨率和码率调整

4.1 调整分辨率

# 缩放到 720p(保持比例)
ffmpeg -i input.mp4 -vf "scale=-1:720" -c:v libx264 -c:a copy output_720p.mp4

# 缩放到指定宽度(保持比例)
ffmpeg -i input.mp4 -vf "scale=1280:-2" -c:v libx264 -c:a copy output.mp4

# 缩放到 1080p
ffmpeg -i input.mp4 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" \
  -c:v libx264 -c:a copy output_1080p.mp4

4.2 控制码率

# 使用 CRF 模式(推荐,数值越小质量越高)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a copy output.mp4

# 使用固定码率
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -c:a aac -b:a 128k output.mp4

# 两遍编码(更精确的码率控制)
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 1 -f null /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 2 -c:a aac output.mp4

五、视频裁剪与拼接

5.1 截取视频片段

# 从 00:01:30 开始截取 60 秒
ffmpeg -i input.mp4 -ss 00:01:30 -t 60 -c copy output_clip.mp4

# 从 00:01:30 截取到 00:03:00
ffmpeg -i input.mp4 -ss 00:01:30 -to 00:03:00 -c copy output_clip.mp4

5.2 拼接多个视频

# 创建文件列表
cat > filelist.txt <<EOF
file 'part1.mp4'
file 'part2.mp4'
file 'part3.mp4'
EOF

# 拼接(同格式直接合并)
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output_merged.mp4

5.3 裁剪画面区域

# 裁剪视频画面(从左上角 100,50 开始,裁剪 640x480 的区域)
ffmpeg -i input.mp4 -vf "crop=640:480:100:50" -c:a copy output_cropped.mp4

六、字幕处理

6.1 嵌入字幕(硬字幕)

# 嵌入 SRT 字幕
ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" output_subtitled.mp4

# 指定字幕样式
ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt:force_style='FontSize=24,FontName=Noto Sans CJK SC'" \
  output_subtitled.mp4

6.2 封装字幕(软字幕)

# 将字幕封装到 MKV 容器
ffmpeg -i input.mp4 -i subtitle.srt -c copy -c:s srt output.mkv

# 添加多语言字幕
ffmpeg -i input.mp4 -i cn.srt -i en.srt \
  -map 0 -map 1 -map 2 \
  -c copy -c:s srt \
  -metadata:s:s:0 language=chi -metadata:s:s:1 language=eng \
  output.mkv

6.3 提取字幕

ffmpeg -i input.mkv -map 0:s:0 output_subtitle.srt

七、音频处理

# 调整音量
ffmpeg -i input.mp4 -af "volume=1.5" -c:v copy output.mp4

# 替换音频轨道
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac \
  -map 0:v:0 -map 1:a:0 output.mp4

# 音频格式转换
ffmpeg -i input.flac -c:a libmp3lame -b:a 320k output.mp3
ffmpeg -i input.mp3 -c:a libopus -b:a 128k output.opus

八、批量处理脚本

# 批量转换目录下所有 MKV 为 MP4
for f in *.mkv; do
  ffmpeg -i "$f" -c:v libx264 -crf 23 -c:a aac "${f%.mkv}.mp4"
done

# 批量生成缩略图
for f in *.mp4; do
  ffmpeg -i "$f" -ss 00:00:05 -vframes 1 "${f%.mp4}_thumb.jpg"
done

# 批量压缩视频
for f in *.mp4; do
  ffmpeg -i "$f" -c:v libx264 -crf 28 -preset fast -c:a aac \
    "compressed_${f}"
done

九、高级技巧

9.1 生成 HLS 流

ffmpeg -i input.mp4 -c:v libx264 -c:a aac \
  -hls_time 10 -hls_list_size 0 -hls_segment_filename "segment_%03d.ts" \
  output.m3u8

9.2 添加水印

# 图片水印(右下角)
ffmpeg -i input.mp4 -i watermark.png \
  -filter_complex "overlay=W-w-10:H-h-10" output.mp4

# 文字水印
ffmpeg -i input.mp4 -vf \
  "drawtext=text='我的水印':fontsize=24:fontcolor=white@0.5:x=W-tw-10:y=H-th-10" \
  output.mp4

9.3 截取视频截图

# 指定时间截图
ffmpeg -i input.mp4 -ss 00:00:30 -vframes 1 screenshot.jpg

# 每隔 10 秒截取一张
ffmpeg -i input.mp4 -vf "fps=1/10" screenshot_%04d.jpg

总结

FFmpeg 是视频处理领域的瑞士军刀,掌握常用命令后可以在搬瓦工 VPS 上完成几乎所有的音视频处理任务。配合 Shell 脚本可以实现批量自动化处理。如果你需要搭建直播服务,可以参考 RTMP 直播服务器教程;如果需要视频托管平台,可以参考 PeerTubePlex 教程。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。如遇问题,可前往 搬瓦工官网 提交工单。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。