ffmpeg просмотр rtsp потока

В настоящее время любой media player обладает возможностью воспроизведения видео контента через поток RTSP (real time streaming protocol). Поставщиками такого контента чаще всего являются камеры видеонаблюдения и видеорегистраторы (те которые охранные комплексы, а не авто регистраторы). IP Camera или регистратор пишут видео на диск или SD карточку по расписанию или по срабатыванию датчика движения (ну то есть занимаются своими обычными делами) и попутно транслируют видео в сеть через порт 554. Может и через другой порт, но чаще всего через 554-й. Вот с этого порта видео поток можно «забрать» и посмотреть.
Как вы поняли из названия статьи «забирать» будем утилитой ffplay из пакета ffmpeg и смотреть будем с помощью ffplay.

ffplay -fflags nobuffer -flags low_delay -framedrop -strict experimental -rtsp_transport tcp "rtsp://192.168.0.27:554/user=admin&password=secret&channel=1&stream=0" -x 1024 -y 768

Рассмотрим опции подробнее:

-flags nobuffer — уменьшает задержку, возникающую при буферизации потока. Так же способствует устранению рассинхрона звука и видео;
-framedrop — если есть проблемы с синхронизацией источника и плеера, то данная опция позволяет сбрасывать (дропать) кадры, чтобы не былоискажения итоговой картинки;
-strict experimental — данная опция позволяет раскрдировать и показывать видеопоток от самых экзотических производителейю
-rtsp_transport — по какому каналу идет стриминг(tcp/udp).
"rtsp://192.168.0.27:554/user=admin&password=secret&channel=1&stream=0" — эта строка определяет источник. Для разных камер она определяется по разному. Но в целом будет присутствовать ip адрес, имя пользователя/пароль и номер потока.
-x 1024 -y 768 — меняет размер итогового видео (можно изменить размер изображения, если не умещается на экране).
Ниже представлена трансляция с двух аналоговых камер. Камеры не имеют IP, сами не могут транслировать. Поэтому rtsp поток снимался с регистратора.

Created with GIMP

Почитать еще: