Я хочу транслировать видео со своего компьютера на другой компьютер, используя http
в vlc
. Я прочитал шаги о том, как сделать потоковое видео здесь
https://wiki.videolan.org/Documentation:Streaming_HowTo_New/
Но здесь они объясняют, как вы можете транслировать с ПК и использовать тот же для получения видео, но я хочу транслировать на другой компьютер.
Вот какие шаги я выполнил до сих пор:
VLC
плеерstream
из media
меню.http
из выпадающего меню и нажмите «Добавить», но здесь проблема в том, что он дает мне только возможность выбрать номер порта и указать какой-то путь, но не дает возможность ввести адрес IP
со стороны приемника.Если я не дал никакого IP-адреса, то как он узнает, куда транслировать. Если на предыдущем шаге я просто нажму «Далее» после выбора номера порта, он покажет мне выбор codec
Если я выберу кодек, то на следующем экране он будет дайте мне stream string output
, теперь в этом stream string output
, который приведен ниже
:sout=#transcode{vcodec=hevc,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:duplicate{dst=http{mux=ffmpeg{mux=flv},dst=:8080/},dst=display} :no-sout-all :sout-keep
Ясно видно, что dst=:8080
, но не указано, на какой IP он должен транслировать. Я просто хочу знать, как я могу добавить IP-адрес, чтобы пункт назначения выглядел как dst= myReceiverIP:port
.
@RaymondChen Я использую приложение Vlc
, но в своем проекте я использую c++
в Qt
. Причина, по которой я использую приложение VLC
, заключается в том, что если мне удастся решить эту проблему в самом приложении VLC
, я могу легко преобразовать его в код, потому что я просто нужно передать string stream output
в объект VlcMedia*
.
Я думаю, вы неправильно поняли, что означает потоковое вещание в этом контексте. То, что vlc делает со своей функцией http-stream, не «отправляет» поток, а скорее предоставляет поток для получения получателем.
Так что совершенно нормально, что dst
позволяет указать только порт, потому что IP всегда совпадает с IP-адресом ПК, предоставляющего поток.
Если вы хотите посмотреть поток, вам нужно получить поток с компьютера, на котором работает VLC. Итак, на вашем устройстве просмотра вам нужно ввести http://ip-of-the-provider:8080
в выбранном вами средстве просмотра (например, во втором экземпляре VLC). Не должно иметь значения, смотрите ли вы поток на том же компьютере или на другом.
Однако будьте осторожны: брандмауэр Windows иногда не позволяет вам подключиться к вашему потоку, поэтому вам нужно разрешить потоковому экземпляру VLC обходить внутренний брандмауэр.
в vlc media player найдите вкладку «Сеть» и установите флажок «Вывод потока», затем «Настройки вкладки», и там вы можете установить свой IP-адрес, как показано на снимке экрана, после чего ваш поток начнет транслироваться по указанному IP-адресу и порту.
затем выберите поток и укажите ip и порт, как показано на скриншоте
бесполезно, вы не выбрали ни одного файла для потоковой передачи, и даже с помощью этого метода, если я транслирую видео, как я могу получить его с другого компьютера, присутствующего в Интернете?
Вы просто не можете отправлять пакеты на любой компьютер в Интернете, так как они не получат его, потому что маршрутизаторы будут отклонять пакеты, поступающие из неизвестных ресурсов, поэтому, даже если приложение VLC
в вашей системе показывает, что вы отправляете поток правильно это не означает, что он правильно достигает места назначения.
Итак, как вы можете отправить поток на ПК, доступный в Интернете. Сначала вы должны убедиться, что любая система, на которую вы отправляете поток, должна присутствовать в общедоступной подсети. Это просто означает, что вы должны иметь возможность пропинговать это system из вашей системы, чтобы проверить, можете ли вы ping
открыть систему или не открыть свой терминал в Ubuntu, а затем выполните следующую команду
ping destination_ip_address
если он успешно получает ping
, это означает, что вы можете транслировать свое видео на этот ip
.
Например, я показываю вам ping
свою собственную систему.
Как видите, здесь есть 0%
потеря пакетов.
Теперь, после того, как вы убедитесь, что вы можете ping
система теперь транслировать видео, выполните следующие действия:
Откройте приложение VLC.
Теперь нажмите «Медиа из меню», а затем «Поток» из списка меню. Теперь вы увидите тот же диалог, что и ниже.
Теперь нажмите «ДОБАВИТЬ», выберите видео, которое вы хотите транслировать, и нажмите кнопку STREAM
внизу. Теперь он покажет вам экран ниже.
Теперь нажмите Next
.
Теперь здесь вам нужно выбрать метод потоковой передачи, поэтому вы выбираете http
, как хотите, но здесь я буду использовать UDP
для моего удобства, а также поставлю галочку на кнопке display locally
.
Add
, и вам будет предложено ввести IP
адрес системы, в которой вы хотите выполнить потоковую передачу, и номер порта. Я даю здесь свой локальный ip
и номер порта по умолчанию, но вам нужно ввести систему назначения IP
и можно выбрать любой порт, но я предпочитаю использовать порт по умолчанию.Stream
, и теперь вы транслируете свое видео на целевой IP-адрес.Теперь, после успешного выполнения вышеуказанных шагов, теперь в вашей системе назначения. Вам необходимо сделать следующие шаги:
VLC
.Media
на панели МЕНЮ и Open Network Stream
.URL
, чтобы получить поток. Поскольку я использовал UDP
, я напишу это как
udp://@:1234
здесь 1234
— номер порта, на котором я хочу, чтобы мой VLC
прослушивал поток.
Теперь нажмите на play
, и через несколько секунд вы увидите там свое потоковое видео.
Вуаля, вы успешно передали видео на другую систему, присутствующую в Интернете.Это то, что я искал спасибо. На самом деле ошибка, которую я совершал, заключалась в шагах, когда я не проверял, могу ли я пропинговать систему или нет. Спасибо, это работает.
Какой язык программирования вы используете?