启动VLC命令行但未能成功流式传输

启动VLC命令行但未能成功流式传输

你好,我使用这个代码与我的旧电视调谐器配合使用(它直接连接到我的电脑并且我使用数字电视进行流媒体播放。

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:[email protected]: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 文件来执行脚本

答案1

语法:转义符、分隔符和引号命令行中有些字符vlc需要转义才能按字面意思理解。不幸的是,存在不同的解析和转义规则:

  • 来自批处理脚本:
    • &^&(& 符号:使用标准转义字符插入符号 ^(英文):
    • %%%(将任何百分号翻倍);
  • 从命令行:
    • &^&(& 符号:使用标准转义字符插入符号 ^(英文):
    • %^%(百分号:使用标准转义字符插入符号 ^也)。

为了更好的可读性,仅考虑这一点子字符串摘自您的命令行(包含应该转义的&和):%

"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:[email protected]: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 命令解释器(CMD.EXE)如何解析脚本?

相关内容