ffmpeg захват rtmp

Здравствуйте товарищи !
Сегодня речь пойдет о ffmpeg и захвате rtmp потока.
ffmpeg чудесный демон для транскодинга,захвата и передачи потока в файл или же в сеть в рамках данной статьи будет представлено несколько вариантов в частности захват rtmp и отдача данного потока в сеть(multicast)
так же рассмотрим вариант с записью в файл и транскодингом с мелкими объяснениями что к чему.

ffmpeg -d -re -i ‘rtmp://xx.xx.xx.xx:1935/live/ams live=1’ -q:v 1 -f mpegts udp://233.169.0.8:1234 &

Данная команда захватит поток с адреса rtmp://xx.xx.xx.xx:1935/live/ams но теперь внимание для того что бы поток начал проигрываться если этот поток не видео, а живая трансляция нужно добавить ключ live=1 иначе кина не будет 😉

ключ -q:v 1 указывает ffmpeg качество передаваемой картинки оно может быть от 1 до 31 чем меньше значение тем лучше качество чем больше значение тем качество хуже ключ -f mpegts указывает в каком формате отдаем данный потока в источник в данном случае udp://233.169.0.8:1234 это мультикаст адрес для данного потока.
ключ -i указывает ffmpeg на источник потока это может быть файл мультикаст группа rtmp трансляция либо же просто видео файл с опереденного url.

Теперь рассмотрим тоже самое но только для файла :

ffmpeg -d -re -i ‘rtmp://xx.xx.xx.xx:1935/live/ams live=1’ -q:v 1 -f flv out.flv &

все как и указано выше кроме ключ -f указывает на формат flv и out.flv указывает на файл куда складывать данный поток.

изменение ключа -f mpegts или -f flv и есть транскодинг 😉

Вот и все пользуйтесь на здоровье =)