Я успешно использую ffmpeg через PHP для захвата миниатюр каждые 15 секунд из наших видео, но мне нужно добавить уведомление об авторских правах для каждого из них. Я достаточно исследовал, чтобы найти, что это можно сделать, и каковы аргументы, чтобы это сделать, но я не могу понять синтаксис, чтобы использовать его, не получая различные ошибки от ffmpeg в зависимости от того, где / как я поместил это в командная строка.
Мне сказали предоставить вывод, который я получаю, поэтому он включен ниже, но мне нужна помощь с правильным синтаксисом, чтобы указать, что мне нужно с помощью команды FFMPEG.
а.) Рабочая команда FFMPEG:
ffmpeg.exe -i D:\video.mp4 -vf "thumbnail, scale=640:480, fps=1/15" D:\video_%05d.jpg
б.) Желаемые аргументы для добавления к рабочей команде выше:
"drawtext=fontsize=20:box=1:fontfile='c:/windows/fonts/arial.ttf:text=\'My Copyright Text\':x=(w-text_w)/2:0"
Как правильно включить аргументы, показанные в б. с командой в .?
гр.) Вкус того, что я пробовал: я пытался положить б. в некоторых местах, таких как ниже, но все они приводят к ошибкам, так или иначе похожим на e. ниже.
ffmpeg.exe -i D:\video.mp4 -vf "thumbnail, scale=640:480, fps=1/15" "drawtext=fontsize=20:box=1:fontfile=c:\windows\fonts\arial.ttf:text='My Copyright Text':x=(w-text_w)/2:0" D:\video_%05d.jpg
е.) Пример вывода / ошибка
C:\>ffmpeg.exe -i D:\video.mp4 -vf "thumbnail, scale=640:480, fps=1/15 drawtext=fontsize=20:box=1:fontfile=Dc:\windows/fonts/arial.ttf:text='CMy Copyright Text':x=(w-text_w)/2:0" D:\captures\video_%05d.jpg -loglevel error
[fps @ 0000000004fec000] Unable to parse option value "1/15 drawtext=fontsize=20" as video rate
[Parsed_fps_2 @ 0000000005000980] Option 'box' not found
[AVFilterGraph @ 000000000509ba40] Error initializing filter 'fps' with args '1/15 drawtext=fontsize=20:box=1:fontfile=c:/windows/fonts/arial.ttf:text=CMy Copyright Text:x=(w-text_w)/2:0'
Error opening filters!
C:\>ffmpeg.exe -i D:\video.mp4 -vf "thumbnail, scale=640:480, fps=1/15", "drawtext=fontsize=20:box=1:fontfile=c:\windows/fonts/arial.ttf:text='CMy Copyright Text':x=(w-text_w)/2:0" D:\captures\video_%05d.jpg -loglevel error
[NULL @ 0000000005053140] Unable to find a suitable output format for 'drawtext=fontsize=20:box=1:fontfile=c:\windows/fonts/arial.ttf:text='CMy Copyright Text':x=(w-text_w)/2:0'
drawtext=fontsize=20:box=1:fontfile=c:\windows/fonts/arial.ttf:text='CMy Copyright Text':x=(w-text_w)/2:0: Invalid argument
C:\>ffmpeg.exe -i D:\video.mp4 -vf "thumbnail, scale=640:480, fps=1/15" D:\captures\video_%05d.jpg "drawtext=fontsize=20:box=1:fontfile=c:\windows/fonts/arial.ttf:text='CMy Copyright Text':x=(w-text_w)/2:0" -loglevel error
[NULL @ 0000000004fc49c0] Unable to find a suitable output format for 'drawtext=fontsize=20:box=1:fontfile=c:\windows/fonts/arial.ttf:text='CMy Copyright Text':x=(w-text_w)/2:0'
drawtext=fontsize=20:box=1:fontfile=c:\windows/fonts/arial.ttf:text='CMy Copyright Text':x=(w-text_w)/2:0: Invalid argument
Типичный вывод на консоль
ffmpeg.exe -loglevel verbose -i d:\myvideo.mp4 -vf "thumbnail, scale=640:480, fps=1/15 drawtext=fontsize=30:box=1:fontfile=c:/windows/fonts/arial.ttf:text='My Copyright Text':x=(w-text_w)/2:0" D:\captures\captured_%05d.jpg
ffmpeg version N-73975-gda8b70b Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
libavutil 54. 28.100 / 54. 28.100
libavcodec 56. 52.100 / 56. 52.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 27.100 / 5. 27.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'd:\myvideo.mp4':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isom
creation_time : 2013-12-18 21:48:29
encoder : Encoded by LearningCORE
Duration: 00:29:09.88, start: 0.000000, bitrate: 1573 kb/s
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 64 kb/s (default)
Metadata:
creation_time : 2013-12-18 21:48:29
handler_name : GPAC ISO Audio Handler
Stream #0:1(und): Video: h264 (Baseline), 3 reference frames (avc1 / 0x31637661), yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 1436 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
Metadata:
creation_time : 2013-12-17 21:37:07
handler_name : vide
encoder : AVC Coding
Stream #0:2(und): Data: none (rtp / 0x20707472), 12 kb/s
Metadata:
creation_time : 2013-12-18 21:37:13
Stream #0:3(und): Data: none (rtp / 0x20707472), 56 kb/s
Metadata:
creation_time : 2013-12-18 21:37:14
Stream #0:4(eng): Subtitle: mov_text (tx3g / 0x67337874), 640x480, 0 kb/s (default)
Metadata:
creation_time : 2013-12-18 21:48:43
handler_name : bc200_00.srt:hdlr=sbtl:lang=en:group=2:delay=0 - Imported with GPAC 0.5.0-rev4065
[Parsed_thumbnail_0 @ 0000000004fa6780] batch size: 100 frames
[Parsed_scale_1 @ 0000000004fc18c0] w:640 h:480 flags:'0x4' interl:0
[fps @ 0000000004fac9a0] Unable to parse option value "1/15 drawtext=fontsize=30" as video rate
[Parsed_fps_2 @ 0000000004fc2b80] Option 'box' not found
[AVFilterGraph @ 000000000505c0a0] Error initializing filter 'fps' with args '1/15 drawtext=fontsize=30:box=1:fontfile=c:/windows/fonts/arial.ttf:text=My Copyright Text:x=(w-text_w)/2:0'
[Parsed_fps_2 @ 0000000004fc2b80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Error opening filters!