我有一个CMS系统,可以使用ffmpeg上传视频,每次出现错误(视频无法播放)或错误编码等问题时,我都无法找到一种对视频加水印的方法。 处理视频的命令是:
<link href="/your-path-to-fontawesome/css/fontawesome.css"
rel="stylesheet">
<link href="/your-path-to-fontawesome/css/brands.css" rel="stylesheet">
<link href="/your-path-to-fontawesome/css/solid.css" rel="stylesheet">
<i class="fas fa-fish"></i>
我也尝试过此命令:
$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=426:-2 -crf 26 $video_output_full_path_240 2>&1");
这似乎不起作用..有什么办法可以解决此问题吗?
答案 0 :(得分:0)
如果要引用ffmpeg
的输出,则会遇到两个错误:
选项filter:v
(设置流过滤图)不能应用于输入URL watermark.png
-您正在尝试将输入选项应用于输出文件,反之亦然。将此选项移到它所属的文件之前。
输入文件watermark.png
的错误解析选项。
'scale=426:-2'
/ -vf
/ -af
选项为输出流0:0指定了 Filtergraph -filter
,该输出流0:0是从复杂的filtergraph馈送的。
-vf
/ -af
/ -filter
和-filter_complex
不能一起用于同一流。
ffmpeg [global options] [input0 options] -i input0 [input1 options] -i input1 [output options] output
-vf
和-filter_complex
。在一个-filter_complex
实例中进行所有过滤。ffmpeg -i video.mp4 -i watermark.png -filter_complex "[0]scale=426:-2[bg];[bg][1]overlay=10:10" -c:v libx264 -preset fast -crf 26 output.mp4