gpt4 book ai didi

batch-file - FFmpeg : how to burn any kinds of subtitle into videos

转载 作者:行者123 更新时间:2023-12-04 23:14:58 25 4
gpt4 key购买 nike

作为标题,我想对一些包含字幕的 mkv 视频进行硬编码。这些潜艇可能是 ASS、SRT 或基于图片的。
我已经阅读了 FFmpeg 文档和资料,但只有在 sub 的类型已知的情况下才找到刻录 sub 的方法。

我尝试使用 mediainfo 获取字幕信息:

mediainfo "--Output=Text;%Format%\r\n" input.mkv

输出是带有 ass 的“ASS”、带有 SRT 的“Text”或“Subrip”或“UTF-8”……
但是我发现很难继续下去,因为我可以获得多种输出,这仍然很难创建一个批处理文件来告诉 ffmpeg 自动检测到类型的潜艇,因此自动选择正确的过滤器。

有没有办法做到这一点?谢谢 !

最佳答案

我不熟悉ffmpeg ,所以这是我的猜测。

for /f %%G in ('mediainfo "--Output=Text;%Format%\r\n" input.mkv') do (
set type=%%G
)

rem rename Text, Subrip and UTF-8 to SRT
if "%type%"=="Text" set type=SRT
if "%type%"=="Subrip" set type=SRT
if "%type%"=="UTF-8" set type=SRT

rem ffmpeg burn as %type%

解释:
  • 获取 mediainfo 的结果并将其设置为变量type
  • 如果 type等于“Text”/“Subrip”/“UTF-8”,设置为“SRT”
  • 烧录文件(不知道命令)

  • 注意:如果要遍历文件列表,则需要像这样的双循环:
    setlocal enableDelayedExpansion

    for /f %%A in (*.mkv) do (
    for /f %%G in ('mediainfo "--Output=Text;%Format%\r\n" %%A') do (
    set type=%%G
    )

    if "!type!"=="Text" set type=SRT
    if "!type!"=="Subrip" set type=SRT
    if "!type!"=="UTF-8" set type=SRT

    rem ffmpeg burn as %type%
    )
  • 循环遍历所有 .mkv文件和;
  • 获取 mediainfo 的结果并将其设置为变量type
  • 如果 type等于“Text”/“Subrip”/“UTF-8”,设置为“SRT”
  • 烧录文件(不知道命令)
  • 关于batch-file - FFmpeg : how to burn any kinds of subtitle into videos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47998408/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com