我想使用以下方法将一些 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
答案3
您缺少将 VLC 调用为服务器的功能。不确定,但似乎“-I http”参数正是您所需要的。希望这能有所帮助。