| Порівняння попередніх версійПопередня ревізія | |
| video-editing [2026/01/11 17:21] – Пропалювання субтитрів wombat | video-editing [2026/02/04 09:30] (поточний) – Накладання тексту wombat |
|---|
| |
| Тут параметр ''si=2'' фільтра ''subtitles'' означає вибір третьої доріжки субтитрів, а параметри ''-map 0:0 -map 0:3'' вказують, що з початкового відеофайлу потрібно взяти перший та четвертий потоки (це можуть бути відео- та аудіопотоки, наприклад). Нумерація аудіо-, відео- та доріжок субтитрів починається з нуля. | Тут параметр ''si=2'' фільтра ''subtitles'' означає вибір третьої доріжки субтитрів, а параметри ''-map 0:0 -map 0:3'' вказують, що з початкового відеофайлу потрібно взяти перший та четвертий потоки (це можуть бути відео- та аудіопотоки, наприклад). Нумерація аудіо-, відео- та доріжок субтитрів починається з нуля. |
| | |
| | |
| | |
| | ==== Накладання тексту ==== |
| | |
| | Додати текстовий напис поверх відео можна за допомогою відеофільтра «''drawtext''»((https://ffmpeg.org/ffmpeg-filters.html#drawtext-1)). Розглянемо приклад: |
| | |
| | ffmpeg -i input_video.mp4 -vf "drawtext=fontfile=monofonto.ttf: fontsize=24: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=white: x=10: y=10: text='Some text'" -c:v libx264 -crf 23 video_with_some_text.mp4 |
| | |
| | В цьому прикладі параметри фільтра «''drawtext''» значать наступне: |
| | * ''fontfile=monofonto.ttf'' -- вказує файл зі шрифтом TrueType, яким потрібно написати текст; |
| | * ''fontsize=24'' -- розмір шрифту; |
| | * ''box=1'' -- означає, що на тлі тексту потрібно намалювати прямокутник; |
| | * ''boxcolor=black@0.5'' -- означає, що прямокутник повинен бути чорного кольору з прозорістю 0.5; |
| | * ''boxborderw=5'' -- ширина полів прямокутника навколо тексту; |
| | * ''fontcolor=white'' -- колір тексту повинен бути білий; |
| | * ''x=10: y=10'' -- координати від лівого верхнього кута відео; |
| | * ''text='Some text''' -- означає, що потрібно написати слова «Some text». |
| | |
| | Якщо ми хочемо, щоб напис був показаний лише у проміжку між 5-ю та 10-ю секундами, то можна додати параметр "''enable='between(t,5,10)'''": |
| | |
| | ffmpeg -i input_video.mp4 -vf "drawtext=fontfile=LiberationSerif-Bold.ttf: fontsize=124: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=red: x=10: y=10: text='Some Text':enable='between(t,5,10)'" -c:v libx264 -crf 23 -an -sn some_text_between_5s_and_10s.mp4 |
| | |
| | |
| | Також можна накладати різні написи в різні моменти часу: |
| | |
| | ffmpeg -i input_video.mp4 -vf "drawtext=fontfile=LiberationSerif-Bold.ttf: fontsize=124: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=red: x=10: y=10: text='Old →':enable='between(t,0,23)', drawtext=fontfile=LiberationSerif-Bold.ttf: fontsize=124: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=#00FF00: x=10: y=10: text='New →':enable='between(t,30,500)'" -c:v libx264 -crf 23 -an -sn compare_old_vs_new.mp4 |
| | |
| | |
| | Замість статичного тексту можна накласти поточну дату у вказаному форматі: |
| | |
| | ffmpeg -i input_video.mp4 -vf "drawtext=fontfile=monofonto.ttf: fontsize=24: box=1: boxcolor=black@0.5: boxborderw=5: fontcolor=white: x=10: y=10: text='%{localtime\:%d.%m.%Y %H\\\\\:%M\\\\\:%S}'" -c:v libx264 -crf 23 video_with_local_time.mp4 |
| |
| |