VL C + Batch + Chromecast. Почему это не работает? - PullRequest
1 голос
/ 06 января 2020

Я пытаюсь создать небольшой пакетный скрипт для навигации по различным Chromecasts вокруг меня и для места, куда проще скопировать макароны URL для потоковой передачи.

Обычно вы можете открыть VL C, воспроизвести видео , go Render > выбрать указанное устройство .

Я нашел строку CMD, которая работает для этого:

vlc "https://www.youtube.com/watch?v=YoUrVidEoHerE" --sout "#chromecast" --sout-chromecast-ip=192.168.0.00 --demux-filter=demux_chromecast

Естественно, я хотел автоматизировать ее.

Вот где я нахожусь:

@echo off
setlocal enableextensions enabledelayedexpansion

:: Below, set DEBUG to 1 to enable displaying more messages for diagnosis
SET DEBUG=0
SET DBG=REM
IF "%DEBUG%"=="1" (SET DBG=ECHO ** DEBUG : )

GOTO start

:ascii_art
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do echo(%%A
:::
:::            @@@@@@@@@@@@@@@@@@@@@@@@@@@        
:::       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:::     @@@@@@@@@@@Chromecast Streamer@@@@@@@@@@@
:::    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:::   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:::   @@@@@@@@@@@@@@  '.@@@@@@@@@@@@@@@@@.--.@@@@@@@@@
:::     @@@@@@@@\   @@  @@ @@@@@@@@@@@ '@@ ___..@@@@@@
:::      @@@@@@@@|                 @    .'@@@@@@@@@@
:::         @@@@@@\                    /@@@@@@@@
:::                \                  /
:::                |   .--'|__|'--.   |
:::                |  /.--'/  \'--.\  |
:::    __  ___     /      /____\      \     ___
:::  _(  )(   )_  |     .' .''. '.     |  _(   )__  __      __
::: (           )_|    |__/    \__|    |_(        )(  )_   (
:::              /                      \__             )_(_
::: _______.---./    .'       COPY          \_.--._ ___________
:::   --'''        _/    __  PASTA                '--..      
:::              ''    .'   THE URL AND PRESS ENTER BELOW!!!
GOTO :eof


:start
cls
call :ascii_art
ECHO.
ECHO 1 - Kitchen
ECHO 2 - Living Room
ECHO 3 - My Room
ECHO 4 - EXIT

:: the choice command

set pass=
choice /c 1234 /n /m ""
set pass=%errorlevel%

:: Setting default input message and IP Address parameter, then changing them if needed,
:: depending on the user's choice
SET Param=
SET MSG=PASTE URL HERE: 
IF "%pass%"=="1" SET Param=192.168.0.01
IF "%pass%"=="2" SET Param=-192.168.0.02
IF "%pass%"=="3" SET Param=192.168.0.03
IF "%pass%"=="4" GOTO exit
goto do_it

:do_it
cls
call :ascii_art
ECHO.
%DBG% User choice was : %pass%
SET URL=
set /p URL=%MSG%
IF [%URL%]==[] GOTO start
SET VLCstr="%URL%" --sout "#chromecast" --sout-chromecast-ip=%Param% --demux-filter=demux_chromecast
SET Command="X:\Software\Applications\win64\VLC\vlc.exe" %VLCstr%

%DBG% Running command : %Command%
%Command%
cls
call :ascii_art
ECHO.
ECHO Your stream has been vanquished.
pause
goto start

:exit
ENDLOCAL

В настоящее время, если вы замените %URL% в строке на VLCstr= реальным URL-адресом, он будет отлично работать.

Есть что-то в связи с тем, как я запрашиваю последний ввод, и как его помещают в строку.

Я бы хотел, чтобы он оставался там, где он принимает Weburls, и локальные файлы тоже.

Есть что-то простое, что мне не хватает?

...