Как транслировать видео с помощью VLC в http на другой компьютер

Я хочу транслировать видео со своего компьютера на другой компьютер, используя http в vlc. Я прочитал шаги о том, как сделать потоковое видео здесь https://wiki.videolan.org/Documentation:Streaming_HowTo_New/ Но здесь они объясняют, как вы можете транслировать с ПК и использовать тот же для получения видео, но я хочу транслировать на другой компьютер.

Вот какие шаги я выполнил до сих пор:

  1. Открываем VLC плеер
  2. Нажал на stream из media меню.
  3. Выбрал файл для потоковой передачи.
  4. Теперь он показывает мне полный путь к видео, поэтому я нажал «Далее». 5. Теперь в окне настройки пункта назначения я выбрал 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.

Какой язык программирования вы используете?

Raymond Chen 26.12.2020 06:28

@RaymondChen Я использую приложение Vlc, но в своем проекте я использую c++ в Qt. Причина, по которой я использую приложение VLC, заключается в том, что если мне удастся решить эту проблему в самом приложении VLC, я могу легко преобразовать его в код, потому что я просто нужно передать string stream output в объект VlcMedia*.

Vinay Kumar 26.12.2020 18:16
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
12 261
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я думаю, вы неправильно поняли, что означает потоковое вещание в этом контексте. То, что vlc делает со своей функцией http-stream, не «отправляет» поток, а скорее предоставляет поток для получения получателем.

Так что совершенно нормально, что dst позволяет указать только порт, потому что IP всегда совпадает с IP-адресом ПК, предоставляющего поток.

Если вы хотите посмотреть поток, вам нужно получить поток с компьютера, на котором работает VLC. Итак, на вашем устройстве просмотра вам нужно ввести http://ip-of-the-provider:8080 в выбранном вами средстве просмотра (например, во втором экземпляре VLC). Не должно иметь значения, смотрите ли вы поток на том же компьютере или на другом.

Однако будьте осторожны: брандмауэр Windows иногда не позволяет вам подключиться к вашему потоку, поэтому вам нужно разрешить потоковому экземпляру VLC обходить внутренний брандмауэр.

в vlc media player найдите вкладку «Сеть» и установите флажок «Вывод потока», затем «Настройки вкладки», и там вы можете установить свой IP-адрес, как показано на снимке экрана, после чего ваш поток начнет транслироваться по указанному IP-адресу и порту.

затем выберите поток и укажите ip и порт, как показано на скриншоте

бесполезно, вы не выбрали ни одного файла для потоковой передачи, и даже с помощью этого метода, если я транслирую видео, как я могу получить его с другого компьютера, присутствующего в Интернете?

Vinay Kumar 27.12.2020 08:39
Ответ принят как подходящий

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

Итак, как вы можете отправить поток на ПК, доступный в Интернете. Сначала вы должны убедиться, что любая система, на которую вы отправляете поток, должна присутствовать в общедоступной подсети. Это просто означает, что вы должны иметь возможность пропинговать это system из вашей системы, чтобы проверить, можете ли вы ping открыть систему или не открыть свой терминал в Ubuntu, а затем выполните следующую команду

ping destination_ip_address

если он успешно получает ping, это означает, что вы можете транслировать свое видео на этот ip. Например, я показываю вам ping свою собственную систему.

Как видите, здесь есть 0% потеря пакетов.

Теперь, после того, как вы убедитесь, что вы можете ping система теперь транслировать видео, выполните следующие действия:

  1. Откройте приложение VLC.

  2. Теперь нажмите «Медиа из меню», а затем «Поток» из списка меню. Теперь вы увидите тот же диалог, что и ниже.

  3. Теперь нажмите «ДОБАВИТЬ», выберите видео, которое вы хотите транслировать, и нажмите кнопку STREAM внизу. Теперь он покажет вам экран ниже.

  4. Теперь нажмите Next.

  5. Теперь здесь вам нужно выбрать метод потоковой передачи, поэтому вы выбираете http, как хотите, но здесь я буду использовать UDP для моего удобства, а также поставлю галочку на кнопке display locally.

  1. Теперь нажмите Add, и вам будет предложено ввести IP адрес системы, в которой вы хотите выполнить потоковую передачу, и номер порта. Я даю здесь свой локальный ip и номер порта по умолчанию, но вам нужно ввести систему назначения IP и можно выбрать любой порт, но я предпочитаю использовать порт по умолчанию.

  1. Теперь нажмите «Далее» и выберите кодеки потоковой передачи. Я просто использую параметры по умолчанию.

  1. Теперь нажмите «Далее», и он покажет вам некоторую строку. Итак, теперь нажмите Stream, и теперь вы транслируете свое видео на целевой IP-адрес.

Теперь, после успешного выполнения вышеуказанных шагов, теперь в вашей системе назначения. Вам необходимо сделать следующие шаги:

  1. Откройте приложение VLC.
  2. Нажмите Media на панели МЕНЮ и Open Network Stream.
  3. Теперь вам нужно ввести URL, чтобы получить поток. Поскольку я использовал UDP, я напишу это как udp://@:1234 здесь 1234 — номер порта, на котором я хочу, чтобы мой VLC прослушивал поток. Теперь нажмите на play, и через несколько секунд вы увидите там свое потоковое видео. Вуаля, вы успешно передали видео на другую систему, присутствующую в Интернете.

Это то, что я искал спасибо. На самом деле ошибка, которую я совершал, заключалась в шагах, когда я не проверял, могу ли я пропинговать систему или нет. Спасибо, это работает.

Vinay Kumar 27.12.2020 09:28

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