0

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

谢谢

4

1 回答 1

1

如果您使用-vprewith ,您的 ffmpeg 版本必须非常旧libx264。此外,-crfand-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 下载页面以获取 Linux、Windows 或 OS X 构建的链接。请注意,libfaac第三方构建可能不提供该功能,但其他 AAC 编码器(例如,libvo_aacenc可能提供) - 并且最肯定的是本机编码器aac始终是一种选择。

有关详细信息,请参阅FFmpeg 和 x264 编码指南


下次要记住的一些事情:

  • ffmpeg 使用问题更适合 superuser.com。Stack Overflow 专门针对编程问题和答案。

  • 这是一个常见问题,但不要说“这没有任何作用”,而是显示您的 ffmpeg 命令产生的完整 ffmpeg 控制台输出。它包含更多有用的信息,而不是简单地说明“这不会做任何事情”。

  • 尽可能尝试使用最新版本的 ffmpeg。开发非常活跃,任何遇到的错误都很有可能已经被修复。

于 2012-11-26T05:55:27.773 回答