Я создал видео с группой изображений и mp3. Но я хочу добавить текст водяного знака к этому видео. Я использую приведенный ниже код для добавления текста.
exec('/usr/local/bin/ffmpeg -y -i output.mov -acodec libmp3lame -vcodec msmpeg4 \ -b:a 192k -b:v 1000k -ar 44100 \ -vf "drawtext=text=string1 string2 string3 string4 string5 string6 string7 :expansion=normal:fontfile=/usr/bin/DejaVuSerif-BoldItalic-webfont.ttf: y=0:x=h-(2*lh)-n: fontcolor=white: fontsize=40: box=1: boxcolor=0x00000000@1" \ -an IMG_0696.avi');
Проблема заключается в том, что видеофайл создается с нулевым размером. Кто-нибудь может мне помочь. Или еще предложите мне любую другую команду, чтобы добавить текст водяного знака в видео. Заранее спасибо…
ffmpeg -i movie.mp4 -i logo.png -filter_complex overlay output.mp4
Я использую php-ffmpeg [Ниже: Композитор Json]:
{ "require": { "php-ffmpeg/php-ffmpeg": "^0.6.1" } }
и используя эту библиотеку php-ffmpeg, вы можете добавить водяной знак, используя следующие коды:
<?php function processVideo($videoSource,$reqExtension, $watermark = "") { $ffmpeg = FFMpeg\FFMpeg::create(); $video = $ffmpeg->open($videoSource); $format = new FFMpeg\Format\Video\X264('libmp3lame', 'libx264'); if (!empty($watermark)) { $video ->filters() ->watermark($watermark, array( 'position' => 'relative', 'top' => 25, 'right' => 50, )); } $format -> setKiloBitrate(1000) -> setAudioChannels(2) -> setAudioKiloBitrate(256); $randomFileName = rand().".$reqExtension"; $saveLocation = getcwd(). '/video/'.$randomFileName; $video->save($format, $saveLocation); if (file_exists($saveLocation)) return "http://localhost/test/video/$randomFileName"; else return "http://localhost/test/thumb/404.png"; } echo $videoLocation = processVideo("sample.mp4","mp4","favicon.png"); ?>
[Пожалуйста, уточните местоположение в соответствии с вашими потребностями.]
$ffmpeg = FFMpeg\FFMpeg::create(); $video = $ffmpeg->open('video.mpg'); $video ->filters() ->resize(new FFMpeg\Coordinate\Dimension(320, 240)) ->synchronize(); $video ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10)) ->save('frame.jpg'); $video ->save(new FFMpeg\Format\Video\X264(), 'export-x264.mp4') ->save(new FFMpeg\Format\Video\WMV(), 'export-wmv.wmv') ->save(new FFMpeg\Format\Video\WebM(), 'export-webm.webm');
Шаги по установке FFmpeg на систему. http://drupalasia.com/article/how-add-watermark-video-using-php-and-ffmpeg