Живой поток рабочего стола на планшет Android и задержка

Я пытаюсь транслировать рабочий стол на планшет Android. Вот что я сделал

1) Захват экрана с помощью ffmpeg

ffmpeg -y -f x11grab -s 800x600 -r 20 -i :0 http://x.x.x.x:8090/feed1.ffm

2) Поток с помощью ffserver

Вот частичный файл ffserver.conf

<Stream test>
Feed feed1.ffm
Format flv
NoAudio                                                
VideoSize 800x600                                      
</Stream>

3) Воспроизвести поток на планшете (Android 4.3), используя URL " http://x.x.x.x:8090/test"

Я могу видеть рабочий стол на планшете с небольшим количеством проблем 1) В видео задержка составляет от 6 до 8 секунд 2) проигрыватель выдает предупреждение "первый кадр - это не ключевой кадр"

Когда я изменил "Формат flv" на "Формат mpegts" в файле "ffserver.conf", предупреждение исчезло. Но задержка все еще там.

Есть ли способ уменьшить задержку?

Я использую правильный формат?

Я хочу добиться максимальной задержки в 2 секунды для потоковой передачи с рабочего стола.

1 ответ

Что вы используете на устройстве Android для просмотра видео? Вопрос выглядит довольно общим.

  1. Вы просто отправляете необработанные кадры получателю? В этом случае они могут быть довольно тяжелыми, и их обработка займет некоторое время. Посмотрите, сможете ли вы на самом деле их кодировать и передавать в сеть.

  2. Во-вторых, это также зависит от сетевой задержки, насколько хороша ваша сеть? Попробуйте сначала в WLAN, а затем попробуйте сделать это между двумя общедоступными IP-номерами.

  3. Каков размер вашего джиттер-буфера на приемнике? Если у вас большой буфер джиттера, игроки устанавливают некоторый процентный лимит для заполнения, прежде чем он действительно сможет начать игру. Очевидно, что если у вас большой буфер джиттера, его заполнение может занять много времени и, следовательно, начальная задержка для вашего видео. Итак, в тестовых случаях отключите джиттер-буфер.

  4. Я также могу винить возможности декодирования вашего приемника.

Другие вопросы по тегам