Hugh's Blog

ffmpeg 简单使用

最近需要用到 ffmpeg 来压缩视频,做个记录。

# 查看视频编码等信息
ffmpeg -i input.mp4

# 压缩视频
ffmpeg -i input.mp4 -vcodec libx264 -acodec copy -crf 28 output.mp4

# 压缩视频 通过调整码率
# 输入文件 170 MiB,4741 kbps,压缩为 50 MiB,则需要将比特率调整为 4741*50/170=1394
ffmpeg -i input.mp4 -b 1394k output.mp4

# 指定输出文件格式
ffmpeg -i input.mp4 -vcodec copy -acodec copy -f mov output.mov

# 改变视频尺寸
ffmpeg -i input.mp4 -vf scale=640:-1 output.mp4

# 合并文件
vim /tmp/mov_files
# 文件内容为
# file /tmp/1.MOV
# file /tmp/2.MOV
# 合并输出为相同格式
ffmpeg -safe 0 -f concat -i /tmp/mov_files -vcodec copy -acodec copy new.MOV
# 合并输出为特定格式
ffmpeg -safe 0 -f concat -i /tmp/mov_files -vcodec copy -acodec aac -strict -2 -b:a 384k new.mp4

# 按时间切割文件
ffmpeg -i input.mp3 -acodec copy -ss 03:06 -to 06:55 output.mp3

# flv 转 MP3
ffmpeg -i input.flv -q:a 0 output.mp3 # 245比特
ffmpeg -i input.flv -b:a 320k output.mp3 # 320比特

参数説明:

  • -i: 指定文件

  • -vcodec: 指定输出视频编码格式

  • -acodec: 指定输出音频格式,一般不需要改

  • -crf: 与视频质量有关,一般 20 左右,数值越高,质量越差,文件越小

  • -f: 指定输出格式

  • -vf: 指定输出尺寸,比如 640:320,640:-1,-1 表示自动调整

  • -ss: 开始时间,格式 hh:ii:ss

  • -to: 结束时间,格式 hh:ii:ss


## 参考

How can I reduce a video’s size with ffmpeg?

ffmpeg压缩视频文件

Combine MOV video files

FFmpeg MP3 Encoding Guide