【问题标题】:VLC batch conversion from m3u8 won't move to next file without user input在没有用户输入的情况下,来自 m3u8 的 VLC 批量转换不会移动到下一个文件
【发布时间】:2025-12-12 19:00:01
【问题描述】:

我有一个批处理文件,它应该打开文件夹中的每个 m3u8 文件,将其流式传输到 mp4 文件并移至下一个文件。视频的长度各不相同,m3u8 文件中似乎没有任何关于长度的信息。批处理文件的工作原理是,当到达流的末尾时,它会显示“{0048ef84} 主播放列表调试:死输入”,然后它只是暂停并等待。如果我然后关闭命令提示符窗口,另一个会询问我是否要结束批处理,如果我说不,那么它会弹出另一个窗口并移动到下一个文件。任何人都知道我可以在没有用户输入的情况下做到这一点吗?代码如下:

 @ECHO OFF
FOR /R %%G IN (*.m3u8) DO (CALL :SUB_VLC "%%G")
FOR /R %%G IN (*.m3u8.mp*) DO (CALL :SUB_RENAME "%%G")
GOTO :eof

:SUB_VLC
 SET _firstbit=%1
 SET _qt="
 CALL SET _newnm=%%_firstbit:%_qt%=%%
 SET _commanm=%_newnm:,=_COMMA_%
 REM echo %_commanm%
 CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" -I dummy -vvv %1 --file-caching=300 --sout=#transcode{vcodec="h264",acodec="mpga",ab="128","channels=2",samplerate="44100"}:standard{access="file",mux="mp4",dst="%_commanm%.mp4"} vlc://quit
GOTO :eof

:SUB_RENAME
 SET _origfnm=%1
 SET _endbit=%_origfnm:*.m3u8=%
 CALL SET _newfilenm=%%_origfnm:.m3u8%_endbit%=.mp4%%
 SET _newfilenm=%_newfilenm:_COMMA_=,%
 COPY %1 %_newfilenm%
 DEL %1
GOTO :eof

:eof

【问题讨论】:

    标签: batch-file vlc


    【解决方案1】:

    删除此处的第一行:如果我是正确的,则不需要

     vlc://quit
    GOTO :eof
    

    调用 VLC 的行在这里工作,并按原样结束 - 因此检查此行为的另一个项目是在
    VLC Tools menu > preferencesInferface 小节中有一个 pause on last frame of video 复选框可能会影响到你。

    您不需要 CALL 关键字来启动 VLC,但它仍然可以使用它。

    编辑

    这使用与您的代码相同的 VLC 命令。在命令行中使用file.m3u8 启动批处理文件,如下所示,它将对文件进行转码,在 VLC 退出后,您将看到提示,按任意键将再次启动同一文件:

    changefile.bat "my file.m3u8"

    如果不关闭它就看不到VLC has quit,那么 VLC 存在问题,必须对其进行排序。

    让我知道结果。

    @echo off
    :loop
    set "_commanm=file"
    CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" -I dummy -vvv %1 --file-caching=300 --sout=#transcode{vcodec="h264",acodec="mpga",ab="128","channels=2",samplerate="44100"}:standard{access="file",mux="mp4",dst="%_commanm%.mp4"} vlc://quit
    echo VLC has quit
    pause
    goto :loop
    pause
    

    【讨论】:

    • 谢谢....我这样做了,但没有影响。虚拟窗口最后仍然暂停,我需要手动关闭它,然后回答否以结束批处理以移动到下一个文件
    • 未选择该选项。也许我可以给你一些 m3u8 文件,你可以自己看看发生了什么?
    • [016161a4] main audio output debug: removing module "directsound"
    • 这很奇怪,因为此时实际的视频文件是完整的。它完全可以播放,音频和视频都很好。
    • 是的,我认为这可能是 VLC 在关闭时出现的错误。
    最近更新 更多