Страница 1 из 1

FreeBSD + ffmpeg + multicast

Добавлено: 2013-04-08 13:42:07
Olorin
Доброго времени суток, форумчане!

Вопрос возник следующего характера..
FreeBSD 9.1, ffmpeg version 1.0.5, IPTV over multicast от провайдера. Задача простая - сменить аудио- видео-кодеки и отправить во флеш. Делаю как-то так:

Код: Выделить всё

/home/olorin # ffmpeg1 -i udp://@239.0.4.18:1234 -f flv -vcodec h264 -profile:v baseline -level 3.1 -acodec libfaac rtmp://mediaserver:1935/live/test.stream
ffmpeg version 1.0.5 Copyright (c) 2000-2012 the FFmpeg developers
  built on Apr  1 2013 08:09:54 with gcc 4.2.1 (GCC) 20070831 patched [FreeBSD]
  configuration: --prefix=/usr/local --mandir=/usr/local/man --incdir=/usr/local/include/ffmpeg1 --libdir=/usr/local/lib/ffmpeg1 --shlibdir=/usr/local/lib/ffmpeg1 --datadir=/usr/local/share/ffmpeg1 --build-suffix=1 --progs-suffix=1 --enable-shared --enable-gpl --enable-postproc --enable-avfilter --enable-pthreads --enable-memalign-hack --disable-libstagefright-h264 --disable-libutvideo --cc=cc --extra-cflags='-msse -I/usr/local/include/vorbis -I/usr/local/include' --extra-ldflags='-L/usr/local/lib ' --extra-libs=-pthread --disable-debug --enable-libaacplus --disable-indev=alsa --disable-outdev=alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libass --disable-libcdio --disable-libcelt --enable-libfaac --enable-libfdk-aac --disable-ffserver --disable-fontconfig --disable-libfreetype --disable-frei0r --enable-gnutls --disable-libgsm --enable-libmp3lame --disable-libbluray --disable-libv4l2 --disable-libmodplug --disable-openal --enable-libopencv --enable-libopenjpeg --disable-libopus --dis  libavutil      51. 73.101 / 51. 73.101
  libavcodec     54. 59.100 / 54. 59.100
  libavformat    54. 29.104 / 54. 29.104
  libavdevice    54.  2.101 / 54.  2.101
  libavfilter     3. 17.100 /  3. 17.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Собственно, на этом все и останавливается.. При этом, на Ubuntu ffmpeg version git-2013-02-05-103a2c2 built on Feb 5 2013 17:58:57 эта же команда отрабатывает спокойно, и лопатит мультикаст в h264.

Из того, что может быть полезным: у компа 2 интерфейса, фаерволл открыт, sysctl не накручен, tcpdump на одном из интерфейсов показывает много multicast-трафика, который относится к IPTV.

В связи с желанием использовать правильную ОС, вопрос к форумчанам: есть ли идеи, как завернуть multicast в ffmpeg штатными средствами, не используя костылей а-ля udpxy (пробовал, работает, но чем нативней - тем лучше)?

Re: FreeBSD + ffmpeg + multicast

Добавлено: 2014-03-22 12:58:08
Alex Keda
той же версии пробовали собрать?

Re: FreeBSD + ffmpeg + multicast

Добавлено: 2014-03-28 11:34:21
Olorin
Почти год спустя хочу извиниться, что не описал решение проблемы, и исправляюсь.)

Я указывал, что используется 2 интерфейса. На одном - мультикаст, на другом - все остальное (в том числе, и маршрут по умолчанию). Все решилось указанием маршрута для мультикаста через шлюз второго интерфейса. Как-то так в /etc/rc.conf:

Код: Выделить всё

## Networking
ifconfig_em1="inet X.X.X.54 netmask 255.255.255.192"
ifconfig_em0="inet Y.Y.Y.217 netmask 255.255.255.240"
defaultrouter="X.X.X.1"
hostname=example.com

static_routes="multicast_igmp"
route_multicast_igmp="-net 224.0.0.0/4 Y.Y.Y.222"