Запустите командную строку VLC, но не успешный поток


0

Привет! Я использовал этот код, который работал с моим старым ТВ-тюнером (он подключался напрямую к моему ПК, и я использовал ТВ для потоковой передачи.

Start ""  "C:\Program Files (x86)\VideoLAN\VLC\vlc" dvb-t://frequency=522000000:bandwidth=0  :dvb-adapter=0 :live-caching=300 :sout=#duplicate{dst=rtp{dst=239.255.1.1,port=5004,mux=ts,ttl=1},dst=display} :sout-keep

Теперь я только что перешел на новую модель ТВ-тюнера и напрямую подключился к моей сети. У меня есть успешный поток, вручную введя все параметры, но я не работаю с моим кодом командной строки. Это началось с не потоковой передачи.

Start ""  "C:\Program Files (x86)\VideoLAN\VLC\vlc" http://User:4a7d1ed414474e4033ac29ccb8653d9b@192.168.165.9:80/basicauth/TVC/Preview?channel=i1:DDvbT2:f522000:mofdm:N8894:T3:S6:P0:E3:b8000:a1;-1;0:q99:Q2000:nCNA+%28HD%29&profile=&stid=2019045506 :sout=#duplicate{dst=rtp{dst=239.255.1.1,port=5004,mux=ts,ttl=1},dst=display} :sout-keep

Пожалуйста, кто-нибудь, помогите мне! :( PS: я использую bat-файл для выполнения скрипта

Ответы:


0

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

  • из пакетного скрипта:
    • &to ^&(амперсанд: использовать стандартную каретку escape-символа ^);
    • %к %%(двойной любой знак процента);
  • из командной строки:
    • &to ^&(амперсанд: использовать стандартную каретку escape-символа ^);
    • %to ^%(знак процента: используйте также стандартную символьную кавычку ^ ).

Для лучшей читаемости рассмотрим только эту подстроку, извлеченную из командной строки (содержащую &и %то, и другое, что следует экранировать):

"vlc" substring :nCNA+%28HD%29&profile=&stid=2019045506
::to be escaped       %    %  &        &                         

Затем для экранирования специальных символов: в командной строке используйте:

"vlc" substring :nCNA+^%28HD^%29^&profile=^&stid=2019045506
::      escaped       ^%    ^%  ^&        ^&          

В пакетном скрипте используйте:

"vlc" substring :nCNA+%%28HD%%29^&profile=^&stid=2019045506
::      escaped       %%    %%  ^&        ^&

ИМХО вам не нужно использовать start "" ...команду; при необходимости добавьте еще %%и ^^... Следующая строка командного сценария должна работать:

"C:\Program Files (x86)\VideoLAN\VLC\vlc" http://User:4a7d1ed414474e4033ac29ccb8653d9b@192.168.165.9:80/basicauth/TVC/Preview?channel=i1:DDvbT2:f522000:mofdm:N8894:T3:S6:P0:E3:b8000:a1;-1;0:q99:Q2000:nCNA+%%28HD%%29^&profile=^&stid=2019045506 :sout=#duplicate{dst=rtp{dst=239.255.1.1,port=5004,mux=ts,ttl=1},dst=display} :sout-keep

Прочитайте следующий вопрос и ответы StackOverflow: как интерпретатор команд Windows переводит сценарии?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.