Если вы хотите автоматизировать однообразные задачи видеомонтажа — от нарезки и склейки до сабов и перевода — связка скриптов на Python и FFmpeg даёт мощный, кроссплатформенный и предсказуемый результат. Ниже — практические примеры batch‑обработки, идеи API‑интеграций и готовые шаги для сборки надёжного пайплайна.
Типовой поток данных:
![Схема пайплайна Python + FFmpeg — блоки и поток данных]
brew install ffmpeg. Ubuntu/Debian: sudo apt install ffmpeg. Windows: скачайте сборку из официального репозитория.pip install ffmpeg-python python-dotenv watchdog requests.Пример структуры:
Ниже простой скрипт, который проходит по папке, конвертирует в H.264/AAC, нормализует громкость и приводит к 1080p/30fps.
import subprocess, sys
from pathlib import Path
INPUT_DIR = Path('input')
OUTPUT_DIR = Path('output')
OUTPUT_DIR.mkdir(exist_ok=True)
VIDEO_EXT = {'.mp4', '.mov', '.mkv', '.avi', '.webm'}
def run(cmd):
print(' '.join(cmd))
subprocess.run(cmd, check=True)
def transcode(in_path: Path, out_path: Path):
# Масштаб с сохранением пропорций + паддинг до 1920x1080, SAR=1 (квадратные пиксели)
vf = (
"scale=w=1920:h=1080:force_original_aspect_ratio=decrease," \
"pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1"
)
cmd = [
'ffmpeg', '-y', '-hide_banner',
'-i', str(in_path),
'-vf', vf, '-r', '30',
'-c:v', 'libx264', '-preset', 'slow', '-crf', '18',
'-c:a', 'aac', '-b:a', '160k', '-af', 'loudnorm=I=-16:LRA=11:TP=-1.5',
'-movflags', '+faststart',
str(out_path)
]
run(cmd)
if __name__ == '__main__':
files = [p for p in INPUT_DIR.rglob('*') if p.suffix.lower() in VIDEO_EXT]
if not files:
print('Нет входных файлов в input/')
sys.exit(0)
for p in files:
rel = p.relative_to(INPUT_DIR)
out = (OUTPUT_DIR / rel).with_suffix('.mp4')
out.parent.mkdir(parents=True, exist_ok=True)
transcode(p, out)
Советы:
pad (см. vertical‑форматы).-crf 20–23 или профиль компрессии. Для максимально высокого качества — -crf 16–18.ffmpeg -ss 00:00:05 -to 00:00:15 -i in.mp4 -c copy clip.mp4
ffmpeg -ss 5 -i in.mp4 -to 10 -c:v libx264 -c:a aac precise_clip.mp4
echo "file 'clip1.mp4'" > list.txt
echo "file 'clip2.mp4'" >> list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy merged.mp4
ffmpeg -i clip1.mp4 -i clip2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac merged.mp4
См. готовые инструменты для склейки и авто‑монтажа.
Схема:
Пример Python‑псевдокода с REST API:
import requests, json
API = 'https://your-asr.example.com'
with open('input/in.mp4', 'rb') as f:
r = requests.post(f'{API}/transcribe', files={'file': f})
segments = r.json()['segments'] # [{'start':0.2,'end':1.8,'text':'...'}]
# Сохранить SRT
def to_srt(segs, path):
def fmt(t):
h=int(t//3600); m=int((t%3600)//60); s=t%60
return f"{h:02d}:{m:02d}:{s:06.3f}".replace('.', ',')
with open(path,'w',encoding='utf-8') as s:
for i,sg in enumerate(segs,1):
s.write(f"{i}\n{fmt(sg['start'])} --> {fmt(sg['end'])}\n{sg['text']}\n\n")
to_srt(segments, 'subs_ru.srt')
# Перевод SRT (любой MT‑API)
tr = requests.post('https://your-mt.example.com/translate', json={'lang':'en','srt':open('subs_ru.srt').read()}).json()
open('subs_en.srt','w',encoding='utf-8').write(tr['srt'])
Наложение сабов (burn‑in):
ffmpeg -i output/ready.mp4 -vf "subtitles=subs_en.srt:force_style='Fontsize=20,Outline=1'" -c:a copy out_subbed.mp4
Озвучка TTS: сгенерируйте файл озвучки и замените аудио‑дорожку:
ffmpeg -i output/ready.mp4 -i voice_en.mp3 -map 0:v -map 1:a -shortest -c:v copy -c:a aac dubbed.mp4
См. страницы: автосаб, перевод видео, озвучка ИИ, транскрипция, суммаризация, дубляж интервью.
Ниже краткая шпаргалка для ffmpeg для видео и аудио:
| Сценарий | Видео | Аудио | Аргументы FFmpeg | Примечание |
|---|---|---|---|---|
| Универсальная публикация | H.264 | AAC | -c:v libx264 -preset medium -crf 18 -c:a aac -b:a 160k -movflags +faststart |
Максимальная совместимость (веб/соцсети) |
| Экономия места | H.265 | AAC/Opus | -c:v libx265 -crf 23 -preset slow |
Медленнее кодирует, лучше битрейт/качество |
| Современная эффективность | AV1 | Opus/AAC | -c:v libsvtav1 -crf 28 -preset 6 |
Отличный VOD, поддержка постепенно растёт |
| Аппаратное ускорение | NVENC | AAC | -c:v h264_nvenc -cq 19 -preset p5 |
Высокая скорость на GPU, чуть ниже эффективность |
Дополнительно см. параметры длины и FPS и профили компрессии.
deshake; более продвинутая — vidstab (если собран в вашей сборке FFmpeg).ffmpeg -i in.mp4 -vf deshake=rx=32:ry=32:edge=mirror -c:a copy out_stable.mp4
ffmpeg -i in.mp4 -vf "hqdn3d=1.5:1.5:6:6,unsharp=3:3:0.5:3:3:0.0" -c:a copy clean_sharp.mp4
delogo=x:y:w:h:show=0. Для сложных — сегментация/инпэйнтинг нейросетями с последующим overlay в FFmpeg. Помните о правовых рисках и используйте только при наличии прав. См. удаление фона, текст/водяной знак, удаление объектов, а также право и безопасность и лицензии.*/10 * * * * /usr/bin/python3 /path/scripts/batch.py >> /path/logs/batch.log 2>&1
watchdog в Python для реактивной обработки новых файлов.ffprobe -v error -select_streams v:0 -show_entries stream=width,height,avg_frame_rate,codec_name,pix_fmt -of json out.mp4
-lavfi ssim/psnr при сравнении исходник ⇒ результат.ffmpeg -i in.mp4 -vf "thumbnail,scale=1280:-1" -frames:v 1 cover.jpg (см. обложки).-movflags +faststart.-vf "select='not(mod(n,60))',scale=640:-1,tile=5x5".-vf "crop=in_h*9/16:in_h,scale=1080:1920" (см. вертикальные форматы).-ss после -i с -accurate_seek.filter_complex concat с перекодированием.fontsdir.-r + -vsync 2.pathlib.-preset медленнее для качества, быстрее — для скорости; при наличии GPU — NVENC/VAAPI/QSV.| Что сделать | CLI или Python | Почему |
|---|---|---|
| Разовый ререндер 10–20 файлов | CLI‑одноразовый скрипт | Быстро и просто |
| Регулярная batch обработка | Python‑оркестрация | Логи, ретраи, кэш, API |
| Сложные фильтры + ИИ | Python + внешние сервисы | Гибкая интеграция, воспроизводимость |
![Скриншот логов batch‑обработки с прогрессом и метриками]
Python + FFmpeg — это практичный способ построить предсказуемый и расширяемый видеопроцессинг: нарезка и склейка, саб и перевод, конвертация кодеков, компрессия, стабилизация и многое другое. Соберите свой минимальный пайплайн, затем добавьте интеграции и автоматизацию.
Готовы ускорить продакшн? Посмотрите наши готовые пайплайны, примеры API/SDK, автоматизацию авто‑монтажа и ассистентов (ChatGPT‑ассистент, персональный помощник). А для публикации — используйте профили под YouTube, TikTok и Telegram.