2015-01-13 3 views
5

Что такое протокол UDP ffmpeg?Что такое протокол UDP ffmpeg?

Вот пример из другого question

ffmpeg -i udp://localhost:1234 -vcodec copy output.mp4 
Or try: 

ffmpeg -i rtp://localhost:1234 -vcodec copy output.mp4 

ли RTP и UDP потоки подобные протоколы или UDP пакеты содержат одни и те же файлы, что я могу, созданные с -f segement вариант?

ответ

0

Протокол пользовательских дейтаграмм.

Необходимый синтаксис для UDP URL является:

udp://hostname:port[?options] 

опция содержит список & -разделенного вариантов вида ключа = значение.

В случае включения потоковой передачи в системе для хранения входящих данных используется круговой буфер, который позволяет уменьшить потерю данных из-за переполнения буфера UDP-сокета. Параметры fifo_size и overrun_nonfatal связаны с этим буфером.

Ниже приведен список поддерживаемых опций.

Использование FFmpeg для потоковой передачи через UDP к удаленной конечной точке:

ffmpeg -i input -f format udp://hostname:port 

Использование FFmpeg для потоковой передачи в формате MPEGTS по протоколу UDP с использованием 188 размера UDP-пакетов, с использованием большого входного буфера:

ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535 

Используйте ffmpeg для получения UDP с удаленной конечной точки:

ffmpeg -i udp://[multicast-address]:port ... 

Вы можете найти некоторые советы в команде человека!

+2

Это очень похоже на https://www.ffmpeg.org/ffmpeg-protocols.html#udp Я прочитал это, прежде чем спрашивать. Он не описывает протокол и то, что внутри. – Artem

2

ffmpeg может прослушивать порт UDP и получать данные с этого порта. Данные могут быть от камеры, которая отправляет RTP-пакеты, инкапсулированные в UDP. SO Представьте себе камеру как отправителя, который просто отправляет udp pakets на порт для ip и ffmpeg, прослушивая этот ip на одном и том же порту и обрабатывая, какая камера отправляет ему Они всего лишь ввод ваших данных, и вы можете использовать - опция F, независимо от того, вход от порта UDP или из фильма для вас же вы можете сделать

ffmpeg -i movie.mp4 -c copy -f flv a.flv

или сделать

ffmpeg -i udp://localhost:1234 -c copy -f flv a.flv 

, для FFmpeg DNT материи, это просто input

+1

На самом деле я нашел UDP такими примерами. Но я не могу найти ссылку, которая описывает этот протокол. – Artem

+0

Да, это не что-то специальное для ffmpeg. UDP - это протокол, используемый операционной системой Windows, а также утилита linux, max os и т. Д. Mpegpeg просто используют этот протокол для отправки данных по нему. –

3

По-видимому, это RTSP, см. libavformat/rtsp.c и libavformat/udp.c в источнике.

1

udp: // в ffmpeg означает, что он будет передавать/анализировать прямой видео/аудиоконтент (например, H.264) в/из сетевых пакетов UDP без промежуточных протоколов.

rtp: // с другой стороны, добавляет еще один уровень инкапсуляции, где видео/аудиоконтент будет инкапсулирован в пакет RTP, а пакет RTP будет инкапсулирован в пакет UDP.

RTP намного лучше подходит для потоковой передачи мультимедиа, поскольку он включает в себя информацию о времени и последовательности. Необработанные UDP-пакеты не имеют такой информации, более подвержены отказам и отбрасыванию пакетов, что приводит к видео/аудио артефактам.

Смежные вопросы