FFmpeg и RTSP: команды для работы с камерами

Справочник команд FFmpeg для RTSP-камер. Запись, конвертация, скриншот, ретрансляция. Готовые примеры для копирования.

Проблема RTSP.KZ 🔧 Работает

FFmpeg — универсальный инструмент для RTSP

FFmpeg — бесплатная утилита для работы с видео/аудио. Поддерживает RTSP как источник и может конвертировать, записывать, ретранслировать потоки с IP-камер.

Установка FFmpeg

# Ubuntu/Debian sudo apt install ffmpeg # macOS brew install ffmpeg # Windows — скачать с ffmpeg.org/download.html

Основные команды

1. Просмотр RTSP-потока

ffplay -rtsp_transport tcp rtsp://admin:pass@192.168.1.100:554/stream

Открывает видео в окне ffplay. Добавьте -fflags nobuffer для минимальной задержки.

2. Запись в MP4

ffmpeg -rtsp_transport tcp \ -i rtsp://admin:pass@ip:554/stream \ -c copy -t 3600 \ output.mp4

-c copy — без перекодирования (быстро, без потери качества). -t 3600 — записать 1 час.

3. Скриншот с камеры

ffmpeg -rtsp_transport tcp \ -i rtsp://admin:pass@ip:554/stream \ -frames:v 1 -q:v 2 \ snapshot.jpg

4. RTSP → HLS (для браузера)

ffmpeg -rtsp_transport tcp \ -i rtsp://admin:pass@ip:554/stream \ -c:v copy -c:a aac \ -f hls -hls_time 2 -hls_list_size 5 \ -hls_flags delete_segments \ /var/www/stream/live.m3u8

5. RTSP → RTMP (YouTube/Twitch)

ffmpeg -rtsp_transport tcp \ -i rtsp://admin:pass@ip:554/stream \ -c:v copy -c:a aac -ar 44100 \ -f flv rtmp://a.rtmp.youtube.com/live2/KEY

6. Перекодирование H.265 → H.264

ffmpeg -rtsp_transport tcp \ -i rtsp://admin:pass@ip:554/stream \ -c:v libx264 -preset fast -crf 23 \ -c:a aac \ output.mp4

7. Сегментированная запись (часовые файлы)

ffmpeg -rtsp_transport tcp \ -i rtsp://admin:pass@ip:554/stream \ -c copy -f segment \ -segment_time 3600 -segment_format mp4 \ -strftime 1 \ /archive/cam1_%Y%m%d_%H%M%S.mp4

8. Уменьшить разрешение

ffmpeg -rtsp_transport tcp \ -i rtsp://admin:pass@ip:554/stream \ -vf scale=1280:720 -c:v libx264 -preset fast \ -c:a copy \ output_720p.mp4

Полезные флаги FFmpeg для RTSP

-rtsp_transport tcp

Принудительно TCP вместо UDP. Надёжнее в нестабильных сетях. Рекомендуем всегда использовать.

-stimeout 5000000

Таймаут подключения (в микросекундах). 5000000 = 5 секунд. По умолчанию бесконечный — FFmpeg может зависнуть.

-fflags nobuffer

Отключает входной буфер. Снижает задержку, но может вызвать артефакты.

-reconnect 1

Автопереподключение при обрыве (только для HTTP-входов, для RTSP нужен wrapper-скрипт).

Зачем RTSP.KZ, если есть FFmpeg?

FFmpeg — мощный инструмент, но для продакшн-использования нужно:

RTSP.KZ — это FFmpeg + nginx + мониторинг + автопереподключение + панель управления в облаке. Без серверов.

Часто задаваемые вопросы

Как записать RTSP-поток через FFmpeg?

ffmpeg -rtsp_transport tcp -i rtsp://admin:pass@ip:554/stream -c copy output.mp4. Флаг -c copy означает без перекодирования — быстро и без потери качества.

FFmpeg зависает при подключении к RTSP — что делать?

Добавьте таймаут: -stimeout 5000000 (5 секунд). Также попробуйте -rtsp_transport tcp. Проверьте, что URL правильный и камера доступна (ping, telnet port 554).

Как сделать автоперезапуск FFmpeg?

На Linux: systemd service с Restart=always. Или bash-скрипт: while true; do ffmpeg ...; sleep 5; done. RTSP.KZ делает это автоматически в облаке.

FFmpeg или VLC — что лучше для RTSP?

FFmpeg — для серверных задач (запись, конвертация, стриминг). VLC — для просмотра с GUI. Для встраивания камеры на сайт или YouTube — только FFmpeg (или RTSP.KZ).

Другие решения

Устали от проблем с RTSP?

RTSP.KZ берёт на себя конвертацию, транскодирование и доставку видео. Просто вставьте RTSP-ссылку — смотрите в браузере.

Попробовать бесплатно