我认真地遵循
但在Linux(ubuntu 13.04 64位)下,命令水印
- 视频文件流
- png 水印
似乎不是到工作不再。
更奇怪的是,ffmpeg和AVCONV不同(请参阅下面的代码、版本和错误)
但语法对我来说似乎正确。有什么想法吗?
请注意 -filter_complex(不再可用)已被 -vf 替换
$ ffmpeg -i ariel.mov -i logostilo7.png -vf "[0:v][1:v]overlay=x=10:y=main_h-overlay_h-10[outv]" -map "[outv]" out.mp4
ffmpeg version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
[h264 @ 0x1ce9d60] max_analyze_duration reached
[h264 @ 0x1ce9d60] Estimating duration from bitrate, this may be inaccurate
Input #0, h264, from 'ariel.mov':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
Input #1, image2, from 'logostilo7.png':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #1.0: Video: png, bgra, 479x339, 25 tbr, 25 tbn, 25 tbc
File 'out.mp4' already exists. Overwrite ? [y/N] y
[buffer @ 0x1cebcc0] w:1920 h:1080 pixfmt:yuv420p
Output pad "default" for the filter "src" of type "buffer" not connected to any destination
Error opening filters!
AVCONV
$ avconv -i ariel.mov -i logostilo7.png -vf "[0:v][1:v]overlay=x=10:y=main_h-overlay_h-10[outv]" -map "[outv]" out.mp4
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[h264 @ 0x19f2d40] max_analyze_duration reached
[h264 @ 0x19f2d40] Estimating duration from bitrate, this may be inaccurate
Input #0, h264, from 'ariel.mov':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
Input #1, image2, from 'logostilo7.png':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #1.0: Video: png, bgra, 479x339, 25 tbr, 25 tbn, 25 tbc
[h264 @ 0x19f2d40] Invalid stream specifier: [outv].
Stream map '[outv]' matches no streams.
您是否知道 ffmpeg 覆盖命令中可能发生哪些变化?
更多的奇怪的是,代码似乎使固定问题完全不同:
ffmpeg -i ariel.mov -vf "movie=logostilo7.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" out.mov
这是否意味着“老式”的水印方式已经结束了?
答案1
你ffmpeg
不是来自 FFmpeg 的“真正的”,而是一个漂亮的过时且名称错误的来自 Ubuntu 存储库。它有无数未修复的错误,并且不支持 ffmpeg 版本 1.0(甚至可能是 0.9)及更高版本所支持的功能。
因此,-filter_complex
并没有被删除 — 恰恰相反:您的构建没有它。您需要具有filter_complex
多个输入和输出的过滤器图选项。
另外,-vf
是 的简写-filter:v
。如果您的版本无法识别-filter:v
,那也是因为它太旧了。
下载最新的静态版本,或者自己编译 ffmpeg。然后,您在其他问题中看到的示例应该可以正常工作。您可以在以下位置找到适用于所有主要操作系统的静态版本下载页面和编译指南在这里,包括针对 Ubuntu 的具体指南。