使用 ffmpeg 和 PHP 向转换后的视频添加徽标或水印
Add logo or watermark to Converted video using ffmpeg and PHP
我们正在使用 FFMPEG 将视频转换为 MP4。
我们做了很多研究,但是我们无法弄清楚如何将公司徽标作为徽标或水印添加到转换后的视频中
PHP代码
<?php
$uploads_dir = 'original/';
$file_name = basename($_FILES['file']['name']);
$output_name = explode('.', $file_name)[0];
$uploaded_file = $uploads_dir . $file_name;
$convert_status = ['mp4' => 0, 'webm' => 0];
if(isset($_POST['submit'])) {
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploaded_file)) {
// Make sure to get the correct path to ffmpeg
// Run $ where ffmpeg to get the path
$ffmpeg = '/bin/ffmpeg';
// MP4
$video_mp4 = $output_name . '.mp4';
exec($ffmpeg . ' -i "' . $uploaded_file . '" -vcodec h264 -acodec libfdk_aac "./converted/' . $video_mp4 . '" -y 1>convert.txt 2>&1', $output, $convert_status['mp4']);
// Debug
// echo '<pre>' . print_r($output, 1) . ' </pre>';
// Debug
// echo '<pre>' . print_r($output, 1) . ' </pre>';
}
}
?>
我们要添加的标志在:https://propeview.com/wp-content/uploads/2021/08/logo-whiteb.png
例如您的 video.mp4
分辨率为 1280 x 720,
并在 x = 0 和 y = 0 的位置 video.mp4
上叠加 logo.png
。
对于许多场景和稳定,您应该首先了解ffprobe
以分析输入
ffmpeg -i video.mp4 -i logo.png -filter_complex
"[1:v]scale=w=1280:h=720,
[0:v]overlay=x=0:y=0:format=yuv420[out]"
-map 0:a -map [out] -y output.mp4
或无比例叠加
ffmpeg -i video.mp4 -i logo.png -filter_complex
"[1:v][0:v]overlay=x=0:y=0:format=yuv420[out]"
-map 0:a -map [out] -y output.mp4
文档:scale, overlay
注意 [1:v]
和 [0:v]
:1 和 0 是输入的索引。 v
为视频流,a
为音频流
我们正在使用 FFMPEG 将视频转换为 MP4。
我们做了很多研究,但是我们无法弄清楚如何将公司徽标作为徽标或水印添加到转换后的视频中
PHP代码
<?php
$uploads_dir = 'original/';
$file_name = basename($_FILES['file']['name']);
$output_name = explode('.', $file_name)[0];
$uploaded_file = $uploads_dir . $file_name;
$convert_status = ['mp4' => 0, 'webm' => 0];
if(isset($_POST['submit'])) {
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploaded_file)) {
// Make sure to get the correct path to ffmpeg
// Run $ where ffmpeg to get the path
$ffmpeg = '/bin/ffmpeg';
// MP4
$video_mp4 = $output_name . '.mp4';
exec($ffmpeg . ' -i "' . $uploaded_file . '" -vcodec h264 -acodec libfdk_aac "./converted/' . $video_mp4 . '" -y 1>convert.txt 2>&1', $output, $convert_status['mp4']);
// Debug
// echo '<pre>' . print_r($output, 1) . ' </pre>';
// Debug
// echo '<pre>' . print_r($output, 1) . ' </pre>';
}
}
?>
我们要添加的标志在:https://propeview.com/wp-content/uploads/2021/08/logo-whiteb.png
例如您的 video.mp4
分辨率为 1280 x 720,
并在 x = 0 和 y = 0 的位置 video.mp4
上叠加 logo.png
。
对于许多场景和稳定,您应该首先了解ffprobe
以分析输入
ffmpeg -i video.mp4 -i logo.png -filter_complex
"[1:v]scale=w=1280:h=720,
[0:v]overlay=x=0:y=0:format=yuv420[out]"
-map 0:a -map [out] -y output.mp4
或无比例叠加
ffmpeg -i video.mp4 -i logo.png -filter_complex
"[1:v][0:v]overlay=x=0:y=0:format=yuv420[out]"
-map 0:a -map [out] -y output.mp4
文档:scale, overlay
注意 [1:v]
和 [0:v]
:1 和 0 是输入的索引。 v
为视频流,a
为音频流