如何在 Windows 批处理行中使用 VLC 命令行而不显示 GUI?

如何在 Windows 批处理行中使用 VLC 命令行而不显示 GUI?

我想使用以下方法将一些 M4A 文件转换为 MP3。它工作正常,但它会显示每个文件的 VLC GUI,并显示“退出”作为要转换的第二个文件。是否有“静默”模式,在这种模式下,它不使用图形界面进行转换?或者我的语法有问题?

@echo off
for /f "delims=|" %%f in ('dir /b *.m4a') do (
  CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%%f" --sout=#transcode{acodec=mp3,ab=128,vcodec=dummy}:std{access="file",mux=raw,dst="converted/%%"} vlc://quit
)

更新:我根据答案 #1 进行了编辑

@echo off
for /f "delims=|" %%f in ('dir /b *.m4a') do (
  CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%%f" --intf dummy --sout=#transcode{acodec=mp3,ab=128,vcodec=dummy}:std{access="file",mux=raw,dst=converted/"%%f"} vlc://quit
  move "%%f" trash/"%%f"
)

它的作用是在处理每个文件时打开一个 DOS 命令窗口。我想要的是完全静音模式(如果可能的话)。我有另一个批处理文件可以执行类似操作(将 CD 文件翻录成 MP3),它似乎工作方式如下:

FOR /R D:\ %%G IN (*.cda) DO (
    "C:\Program Files (x86)\VideoLAN\VLC\vlc" -I http cdda:///D:/ --cdda-track=!y! :sout=#transcode{vcodec=none,acodec=%e%,ab=320,channels=2,samplerate=44100}:std{access="file",mux=raw,dst="%t%!PADDED!.%e%"} vlc://quit
)

我错过了什么?

答案1

你可以使用这个:

vlc -I dummy --dummy-quiet {path_to_file}

按照@MC10 的回答-intf dummy-I dummy(它们的作用相同)隐藏 GUI,但仍打开第二个命令行窗口。使用附加--dummy-quiet选项也可以隐藏此窗口。

因此,对于您的场景:

@echo off
for /f "delims=|" %%f in ('dir /b *.m4a') do (
    CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%%f" --I dummy --dummy-quiet --sout=#transcode{acodec=mp3,ab=128,vcodec=dummy}:std{access="file",mux=raw,dst=converted/"%%f"} vlc://quit
    move "%%f" trash/"%%f"
)

答案2

你正在寻找的是dummy界面. 这将不会给您提供 GUI。

例子:

% vlc --intf dummy vcd://

编辑:虽然虚拟界面不会提供 GUI,但它会打开控制台。这不是问题所要求的,所以我正在更新答案。

这可能是Linux仅有的,我还不确定。您可以替换vlc为,cvlc这样就完全没有界面了。

答案3

您缺少将 VLC 调用为服务器的功能。不确定,但似乎“-I http”参数正是您所需要的。希望这能有所帮助。

相关内容