Живой поток рабочего стола на планшет 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 для просмотра видео? Вопрос выглядит довольно общим.
Вы просто отправляете необработанные кадры получателю? В этом случае они могут быть довольно тяжелыми, и их обработка займет некоторое время. Посмотрите, сможете ли вы на самом деле их кодировать и передавать в сеть.
Во-вторых, это также зависит от сетевой задержки, насколько хороша ваша сеть? Попробуйте сначала в WLAN, а затем попробуйте сделать это между двумя общедоступными IP-номерами.
Каков размер вашего джиттер-буфера на приемнике? Если у вас большой буфер джиттера, игроки устанавливают некоторый процентный лимит для заполнения, прежде чем он действительно сможет начать игру. Очевидно, что если у вас большой буфер джиттера, его заполнение может занять много времени и, следовательно, начальная задержка для вашего видео. Итак, в тестовых случаях отключите джиттер-буфер.
Я также могу винить возможности декодирования вашего приемника.