avconv
我无法使用或通过 Gamma 校正调整视频ffmpeg
。我使用 Debian Jessie,所以我首先怀疑它avconv
不完整,因此这个问题,ffmpeg是我自己搭建的。
使用这篇博文,我假设以下过滤器就可以了(应用 Gamma 0.5):
ffmpeg -i in.mp4 -vf mp=eq2=0.5:1:1:1:1:1:1:1 out.mp4
然而,它只是说
[AVFilterGraph @ 0x1faf6a0] No such filter: 'mp'
Error opening filters!
滤镜改名了吗?如何应用 Gamma 校正?所以我查看了本文档看来我应该使用eq
过滤器。尝试:
ffmpeg -i in.mp4 -vf eq=gamma=0.5 out.mp4
没有成功:
[AVFilterGraph @ 0x23466a0] No such filter: 'eq'
Error opening filters!
答案1
似乎默认情况下缺少几个过滤器,因为 ffmpeg 的人不喜欢 GPL 许可证...所以下面是我一步一步做的:
(1)安装依赖项
sudo apt-get install yasm nasm \
build-essential automake autoconf \
libtool pkg-config libcurl4-openssl-dev \
intltool libxml2-dev libgtk2.0-dev \
libnotify-dev libglib2.0-dev libevent-dev \
checkinstall
(2)克隆存储库
git clone git://git.videolan.org/ffmpeg.git
(3)启用 GPL 进行编译:
cd ffmpeg
./configure --enable-gpl --prefix=/usr
time make -j 8
sudo mkdir /usr/share/ffmpeg
sudo checkinstall
在最后一步中,系统会要求您输入软件包信息。我添加了版本信息,但这应该是可选的。
然后它就可以工作了:
ffmpeg -i in.mp4 -vf "eq=gamma=0.5" out.mp4
编辑:不幸的是,上面的代码仍然为您提供了一个原始的 ffmpeg,没有任何有用的编解码器,例如 libx264。在花了几个小时之后,我得出结论,让它工作的唯一方法是忘记从源代码编译,并添加 deb-multimedia,如链接答案中所建议的那样。
答案2
我经常从 git repo 构建 ffmpeg,其中包含 30 多个库,这些对我来说很有用,因为 ffmpeg 的示例文档很糟糕
简单的方法,查找其中一条默认曲线
ffmpeg -i file.mp4 -codec:v blahblahblah -filter:v curves=preset=strong_contrast -codec:a copy dump_file.mp4
使用 lut
ffmpeg -i file.mp4 -codec:v blahblahblah -filter:v lutyuv=y=val*1.3 -codec:a copy dump_file.mp4
全力以赴,定义 rgb 的所有最小值/最大值,这将会变亮
ffmpeg -i file.mp4 -codec:v blahblahblah -filter:v colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.95:gimax=0.94:bimax=0.93 -codec:a copy dump_file.mp4
我确认 ffplay 命令仍然有效
ffplay movie.mp4 -vf eq=gamma=1.5