RTSP (Real-Time Streaming Protocol) — это протокол, используемый для потоковой передачи мультимедиа.
FFmpeg — мощный инструмент, который позволяет захватывать и сохранять RTSP-потоки.
Запись медиа из RTSP-потока в реальном времени с помощью FFmpeg легко осуществить. Этот универсальный набор программных инструментов предоставляет возможности записи, конвертации и вещания множества мультимедиа-форматов через командную строку.
1. Базовая запись RTSP-потокаСамый простой способ захвата RTSP-потока:
ffmpeg -i rtsp://<username>:<password>@<ip_address>:<port>/<path> -vcodec copy -acodec copy output.mp4 Замените <username>, <password>, <ip_address>, <port> и <path> на значения из вашего RTSP-URL.
2. Запись по времениЧтобы записывать поток ограниченное время, используйте параметр -t:
ffmpeg -i rtsp://<username>:<password>@<ip_address>:<port>/<path> -vcodec copy -acodec copy -t 3600 output.mp4 В этом примере производится запись RTSP-потока в течение
1 часа (3600 секунд).
3. Запись в реальном времениЧтобы избежать буферизации ввода (которая вызывает задержки), используйте:
ffmpeg -rtsp_transport tcp -i rtsp://<username>:<password>@<ip_address>:<port>/<path> -vcodec copy -acodec copy output.mp4 Эта команда задаёт транспорт протокола RTSP как
TCP — чаще всего более надёжный вариант для видеонаблюдения.
4. Изменение кодеков видео и аудио (транскодирование)Если вы хотите перекодировать поток:
ffmpeg -i rtsp://<username>:<password>@<ip_address>:<port>/<path> -vcodec h264 -acodec aac output.mp4 Видео будет перекодировано в
H.264, аудио — в
AAC.
5. Масштабирование видео ffmpeg -i rtsp://<username>:<password>@<ip_address>:<port>/<path> -vcodec copy -acodec copy -vf "scale=1280:720" output.mp4 Видео будет масштабировано до
1280×720.
Использование FFmpeg: кодирование, монтаж, архивирование Кодирование видео ffmpeg -i input.mp4 -c:v libx264 output.mp4
Добавление аудио ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4
Запись с веб-камеры (архивирование) ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 output.mp4
FFmpeg может заменить специализированный софт при записи и архивировании видео.
Объединение видеофайлов ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v:0][1:v:0]concat=n=2:v=1:a=0" output.mp4
Извлечение кадров ffmpeg -i input.mp4 -vf "fps=1/10" -vsync vfr output%d.png
Добавление субтитров ffmpeg -i input.mp4 -i subtitles.srt -c:v copy -c:a copy -c:s mov_text output.mp4
Живой стрим ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -b:v 2500K -c:a aac -b:a 128K -f flv rtmp://your-streaming-server
Видеoархивирование с FFmpeg - плюсы и нюансыИспользовать FFmpeg для архивации видео действительно возможно и экономично, однако важно учитывать:
Параметр | Что надо помнить |
Автоматизация | потребуется написание скриптов |
Хранение | создаются большие объёмы данных |
Резервирование | необходимо регулярное копирование |
Совместимость | выбирайте популярные форматы и кодеки |
FFmpeg — мощный и универсальный инструмент для обработки мультимедиа. При правильной настройке можно создать
недорогую, гибкую и полностью кастомизированную систему архивации видео без специализированных программ.
Понимание возможностей и ограничений FFmpeg позволит эффективно использовать этот инструмент для записи RTSP-потоков, трансляции, архивации и обработки видео под любые задачи.