如何在不显示 GUI 的情况下在 Windows 批处理中使用 VLC 命令行?

jch*_*dev 9 vlc-media-player command-line batch-file

我想使用以下内容将一些 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
)
Run Code Online (Sandbox Code Playgroud)

更新:我根据答案 #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"
)
Run Code Online (Sandbox Code Playgroud)

它所做的是在处理每个文件时打开一个 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
)
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

小智 7

你可以使用这个:

vlc -I dummy --dummy-quiet {path_to_file}
Run Code Online (Sandbox Code Playgroud)

根据@MC10 的回答-intf dummyor -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"
)
Run Code Online (Sandbox Code Playgroud)


MC1*_*C10 5

您正在寻找的是dummy界面。这不会给你任何 GUI。

例子:

% vlc --intf dummy vcd://

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

这可能仅适用Linux,我还不确定。您可以替换vlccvlc在所有获得无界面。