如何加入两个ffmpeg命令

时间:2012-11-26 03:46:01

标签: ffmpeg video-encoding watermark

我有一个脚本,它使用这个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'

感谢

1 个答案:

答案 0 :(得分:1)

如果您将-vprelibx264一起使用,那么您的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。开发非常活跃,任何遇到的错误很有可能已经被修复。