Подтвердить что ты не робот

Внедрение android в качестве сервера (приемника) в эфире

Я хочу создать трансляцию в андроиде, в котором мое устройство Android будет работать как сервер трансляции (приемник), и устройство iPhone будут работать в качестве приемника. Я использовал jmdns в своем приложении, которое является библиотекой с открытым исходным кодом в java для трансляции. Он отлично работает для аудио. Но когда я прихожу к видео и изображению, для меня есть много борьбы даже с открытием устройства. Вот мой код для создания и регистрации сервиса:

    ServiceInfo info = ServiceInfo.create(identifier + "@" + name + "._raop._tcp.local", identifier + "@" + name, port, "tp=UDP sm=false sv=false ek=1 et=0,1 cn=0,1 ch=2 ss=16 sr=44100 pw=false vn=3 txtvers=1");

        dns = JmmDNS.Factory.getInstance();
        ((JmmDNSImpl)dns).inetAddressAdded(new NetworkTopologyEventImpl(JmDNS.create(InetAddress.getByName("localhost")), InetAddress.getByName("localhost")));

        try {
            Thread.sleep(1000); // If this isn't done the Announcement sometimes doesn't go out on the local interface
        } catch (InterruptedException e) {
            e.printStackTrace(System.err);
        }

        dns.registerService(info);

когда я изменяю этот._raop в первой строке на._airplay, тогда устройство было обнаружено для изображения и звука в iPad. Когда я выбираю устройство для воспроизведения видео, оно отображает сообщение " Это видео воспроизводит андроид (имя сервера)". Но на стороне сервера я не получаю никаких пакетов для обработки. Я изучаю Jmdns lot. Но я не понимаю, как реализовать видео и изображение в эфире, используя jmdns. Любые идеи?

4b9b3361

Ответ 1

Вам нужен потоковый сервер. FFmpeg кажется мне интересным местом для начала. См. ffserver.

Вот хороший учебник о том, как обернуть его в ffmpeg-java.