我有一个脚本,它使用这个ffmpeg命令的参数来编码视频。
ffmpeg -i inputfile -acodec libfaac -keyint_min 20 -r 20 -vcodec libx264 -vpre hq -crf 25 -b 300k -bt 300k -y -v 0 -bf 16 -threads 0 outputfile
我有一个自定义命令,我想添加它,就像这样
ffmpeg -i inputfile -vf "movie=watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" outputfile
所以我替换了这样的主命令
ffmpeg -i inputfile -acodec libfaac -keyint_min 20 -r 20 -vcodec libx264 -vpre hq -crf 25 -b 300k -bt 300k -y -v 0 -bf 16 -threads 0 -vf "movie=watermark1.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" outputfile
并在命令行中尝试了它,但这没有做任何事情,输出就像这样
[root@www test1]# ffmpeg -i test1800.mp4 -acodec libfaac -keyint_min 20 -r 20 -vcodec libx264 -vpre hq -crf 25 -b 300k -bt 300k -y -v 0 -bf 16 -threads 0 -vf "movie=watermark1.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" outputfile.mp4
[root@www test1]#
我该如何解决这个问题?
感谢您的时间。
更新 我的ffmpeg命令详细信息
[root@www test1]# ffmpeg
ffmpeg version N-47061-gbe2c0bc Copyright (c) 2000-2012 the FFmpeg developers
built on Nov 25 2012 09:32:08 with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-52)
configuration: --enable-gpl --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264
libavutil 52. 9.100 / 52. 9.100
libavcodec 54. 77.100 / 54. 77.100
libavformat 54. 37.100 / 54. 37.100
libavdevice 54. 3.100 / 54. 3.100
libavfilter 3. 23.102 / 3. 23.102
libswscale 2. 1.102 / 2. 1.102
libswresample 0. 17.101 / 0. 17.101
libpostproc 52. 2.100 / 52. 2.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
感谢
答案 0 :(得分:1)
如果您将-vpre
与libx264
一起使用,那么您的ffmpeg版本必须非常旧。此外,-crf
和-b
是互斥的,因此您可以使用其中一个,但不能同时使用这两个,这将导致ffmpeg忽略其中一个选项。
此示例是您的命令的近似值,但使用最近的语法:
ffmpeg -i input -i watermark.png -c:v libx264 -preset slow -crf 25 -c:a libfaac -q:a 100 -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" output.mp4
如果您懒得编译,请参阅ffmpeg.org download页面,获取Linux,Windows或OS X版本的链接。请注意,libfaac
可能不适用于第三方版本,但其他AAC编码器(例如libvo_aacenc
)可能可用 - 并且大多数情况下,本机编码器aac
始终是一个选项。
有关详细信息,请参阅FFmpeg and x264 Encoding Guide。
下次要记住的一些事情:
ffmpeg使用问题更适合superuser.com。 Stack Overflow专门用于编程问题和答案。
这是一个常见的问题,但请不要说“这不做任何事情”,请显示由ffmpeg命令产生的完整ffmpeg控制台输出。它包含的信息比简单地说明“这不做任何事情”更有用。
尽可能尝试使用最新版本的ffmpeg。开发非常活跃,任何遇到的错误很有可能已经被修复。