VLC命令行播放直播流:实现按任意键停止退出及显示比特率的技术问询
VLC命令行播放直播流:实现按任意键停止退出及显示比特率的技术问询
我最近在折腾Windows批处理文件,想要实现这么个功能:运行脚本后用VLC播放直播流,按任意键就能退出同时停止播放。目前写的脚本能正常播放,但启动VLC后批处理就卡住了——这其实也能理解,毕竟VLC在命令执行中途就跑起来了,但我不确定能不能在VLC启动后通过命令来停止它。另外还想加些实用的功能,比如显示当前播放的比特率,但对VLC的命令行参数不太熟悉,不知道该怎么弄。
我最初写的脚本是这样的:
@ECHO OFF cls ECHO CBC Radio 1 - Calgary, Alberta "C:\Program Files\VideoLAN\VLC\vlc.exe" -I dummy --dummy-quiet "https://cbcradiolive.akamaized.net/hls/live/2041039/ES_R1MCG/master.m3u8" ECHO Press any key to quit. PAUSE vlc "https://cbcradiolive.akamaized.net/hls/live/2041039/ES_R1MCG/master.m3u8" vlc://quit
我琢磨着vlc://quit应该是VLC运行时的指令,可能得整合到第一个启动命令里?但这是无限循环的直播流,不是普通的音频文件,不知道这么搞行不行...
240212 更新:已实现可行方案
后来得到帮助后,我做了两个批处理文件,分别负责播放控制和启停操作,还调整了不少细节:比如去掉了播放脚本里的固定路径,让它能在当前目录运行;加了说明文字,让用户知道怎么操作;每个音质和地区的直播流都单独做一套文件;还在启停脚本里加了MODE命令,让命令窗口变得小巧精致。当然前提是VLC安装在命令里指定的默认路径。
播放脚本:VLC CBC Radio 1 - Calgary Alberta 192 Player.bat
title CBC Radio 1 - Calgary Alberta 192 Player @ECHO OFF cls ECHO PLAYER ONLY ECHO Use 'Start' file to stop and close player. ECHO =========================================== ECHO Feed: CBC Radio 1 - Calgary, Alberta ECHO Quality: 192kbps ECHO Link: 'https://cbcradiolive.akamaized.net/hls/live/2041039/ES_R1MCG/adaptive_192/chunklist_ao.m3u8' "C:\Program Files\VideoLAN\VLC\vlc.exe" -I dummy --dummy-quiet "https://cbcradiolive.akamaized.net/hls/live/2041039/ES_R1MCG/adaptive_192/chunklist_ao.m3u8"
启停控制脚本:VLC RUN-STOP CBC Radio 1 - Calgary Alberta 192.bat
title RUN/STOP CBC Radio 1 - Calgary, Alberta 192 @ECHO OFF MODE 45,2 start /MIN cmd.exe /k "VLC CBC Radio 1 - Calgary Alberta 192 Player" cls echo Press any key to stop playback and close. pause taskkill /f /fi "WINDOWTITLE eq vlc*" taskkill /f /fi "WINDOWTITLE eq CBC Radio 1 - Calgary Alberta 192 Player" exit
备注:内容来源于stack exchange,提问作者Jake Sherlock




