#video-streaming #resolution #h.264 #rtp #mtu
#потоковое видео #разрешение #ч.264 #rtp #mtu
Вопрос:
Возможно ли отправлять видеопоток с использованием rtp с разрешением 800×600 через Интернет в режиме реального времени?
Я читал о пределе MTU, но я не знаю, как достичь этого предела с этим разрешением, даже сжимая его с помощью h264.
Какие методы используют популярные программы видеочата для этого?
Я пробовал с большим сжатием, но могу отправлять только с разрешением 400×300.
Ответ №1:
Возможно ли отправлять видеопоток с использованием rtp с разрешением 800×600 через Интернет в режиме реального времени?
ДА.
Я читал о пределе MTU, но я не знаю, как достичь этого предела с этим разрешением, даже сжимая его с помощью h264.
Это не имеет значения: формат полезной нагрузки H.264 RTP поддерживает фрагментацию больших конечных единиц для соответствия ограничениям MTU. Вам нужно использовать режим без чередования, который поддерживает фрагментацию конечных блоков, вместо режима с одним конечным блоком, где один пакет RTP содержит один конечный блок.
РЕДАКТИРОВАТЬ: ваш комментарий полностью меняет контекст вопроса.
Возможно ли это при 30 кадрах в секунду?
Это полностью зависит от вашего определения «реального времени». Такие приложения, как видеоконференции, рассматриваются в режиме реального времени. Однако в таком сценарии, как ваш, у вас гораздо более критические ограничения по задержке. Это совсем другая история, и это зависит от того,:
- ваша «машина» может сжимать видео со скоростью 800×600 30 кадров в секунду
- сеть, например, проводная / беспроводная, e2e, задержка, bw, потеря пакетов, дрожание
Кроме того, в таком случае вам необходимо учитывать, что происходит, когда пакеты или управляющая информация теряются? Каковы соображения безопасности в случае сбоя вашего компьютера и т. Д.? RTP обычно отправляется через UDP по причинам задержки, что означает, что пакеты RTP могут быть потеряны. Хотя вы можете отправить его по протоколу TCP, в вашем случае этого делать не следует, поскольку RTP через TCP может привести к огромным задержкам прибытия пакетов.
Комментарии:
1. Неужели? возможно ли это со скоростью 30 кадров в секунду? потому что в свободное время я разрабатываю проект, в котором я могу удаленно управлять маленькой машиной с камерой со своего компьютера с помощью джойстика. Так возможно ли, чтобы не было слишком большой задержки, чтобы сделать управление стабильным с потоком 800×600?
2. Например, в режиме реального времени я имею в виду максимальную задержку в 300-500 мс. Если он выйдет из строя, мне все равно 🙂
3. Большая часть вашей задержки обычно связана со временем, необходимым для передачи пакетов по сети. В локальных сетях это должно составлять пару миллисекунд, что должно дать вам достаточно времени для повторной передачи при желании.