新手问题 求助:ffmpeg 或者类似软件如何做视频压缩

fsword · 2013年05月14日 · 最后由 Thomastar 回复于 2018年05月29日 · 13106 次阅读

上周六的录像效果还不错,不过我拿到的是原始文件,大约 30G,不方便传出去编辑,按说应该压缩一下以后再传播,估计 ffmpeg 可以,但是我不会捣鼓那些参数,有人知道怎么做吗?,我的环境是 linux

FFMPEG 用这个编译安装吧(apt-get 的话还有一堆东西要搞,如果是 Mac 可以直接用 Brew 该有的都用了,而且都是最新的),完了就可以用 x264 和 faac 转了 https://github.com/stvs/ffmpeg-static

然后再用这个 FFMEG Wrapper Gem 包装一下 https://github.com/streamio/streamio-ffmpeg

ffmpeg -i input.mov -s 768x480 -aspect 1.6 /tmp/output.mp4

以上是 Streamio-ffmpeg 这个 Gem 生成出来的命令,也可以直接试一下。注意分辨率和 -aspect 比例就好了。

这是我前段时间转 mp4 的一些实验 :D

#2 楼 @_samqiu 多谢,我试试

你先安装 ffmpeg 和相应的类库 (libx264 和 libfaac,压缩后视频编码是 H.264,音频是 AAC),现在压缩都是采用 H.264 high profile,所以可以这样:

shell 脚本:一般如果要压缩质量比较好,都要 2 个 pass

high.sh

$1是源文件,$2是码率,网络传输建议码率是 1024k~2048k,$3是分辨率,720p 是 -1:720,-1 表示根据高 720 保持比例缩放,$4是视频比例,看源视频了,比如 4:3, 3:2, 16:9 等,$5是输出文件名

1st pass:

ffmpeg -i $1 -vcodec libx264 -vprofile high -preset slow -b:v $2 -maxrate $2 -bufsize 4000k -vf scale=$3 -aspect $4 -threads 0 -pass 1 -an -f mp4 /dev/null

2nd pass:

ffmpeg -i $1 -vcodec libx264 -vprofile high -preset slow -b:v $2 -maxrate $2 -bufsize 4000k -vf scale=$3 -aspect $4 -threads 0 -pass 2 -acodec libfaac -b:a $5 -f mp4 $6

具体使用方法实例: sh high.sh input.avi 2000k -1:720 16:9 output.mp4

#4 楼 @zeeler 好详细啊,学习先

h264 效果好文件小。。。。只是转码时间约等于视频播放时间。所以建议你放在服务器上转。

@fsword 你在做视频吗?有没有人自告奋勇来处理一下视频,基本就是分段加压码就可以了。

ffmpeg -i OutputFile.avi -vcodec libx264 -maxrate 500k -bufsize 1000k -vf scale=-1:480 -threads 0 -f mp4 current.mp4

#4 楼 @zeeler 试了一下,好像有错误,修改了成下面的还是不行

ffmpeg -i $1 -vcodec libx264 -vprofile high -preset slow -b:v $2 -maxrate $2 -bufsize 4000k -vf scale=$3 -aspect $4 -threads 0 -pass 1 -an -f mp4 -y /dev/null
ffmpeg -i $1 -vcodec libx264 -vprofile high -preset slow -b:v $2 -maxrate $2 -bufsize 4000k -vf scale=$3 -aspect $4 -threads 0 -pass 2 -acodec libfaac -b:a $5 -f mp4

#7 楼 @yedingding 我先压缩一下,不然传给别人都不容易

#10 楼 @fsword 你的 ffmpeg 什么版本,我的没问题呀,我在 Mac OS 上用的,经常转码

ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers built on Aug 28 2012 17:01:49 with clang 4.0 ((tags/Apple/clang-421.0.60)) configuration: --prefix=/usr/local/Cellar/ffmpeg/0.11.1 --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/clang --host-cflags='-Os -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.8' --host-ldflags='-L/usr/local/Cellar/gettext/0.18.1.1/lib -L/usr/local/lib -L/opt/X11/lib' --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --disable-ffplay libavutil 51. 54.100 / 51. 54.100 libavcodec 54. 23.100 / 54. 23.100 libavformat 54. 6.100 / 54. 6.100 libavdevice 54. 0.100 / 54. 0.100 libavfilter 2. 77.100 / 2. 77.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Streamio-ffmpeg must be mac OS?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号