首页 > 解决方案 > 在使用 FFMPEG 将 MKV 转换为 MP3 时添加元数据

问题描述

我正在尝试将 MKV 文件转换为 MP3,同时通过批处理文件添加元数据和专辑插图。我正在通过 FFMPEG 生成 PNG,然后在添加元数据的同时转换为 MP3,最后添加我最初获得的专辑插图。

我曾尝试在转换为 MP3 时添加元数据,但在添加艺术品时无济于事。我读到了一些关于它太快刷新缓冲区的内容,但我认为我可以通过在转换时添加它来绕过它。

单独地,所有部分都可以工作,但我无法将标题和艺术家添加到元数据中,或者至少在 VLC 可以读取的地方。有什么建议么?

@echo off
::Extracts a PNG thumbnail 
for %%A in ("*.mkv") do (ffmpeg -ss 30 -i "%%A" -qscale:v 4 -frames:v 1 "%%~nA.png")

::Convert from MKV to MP3 and adds title and artist based on file name delimited by "-" eg Metallica - Enter Sandman.mkv
SETLOCAL ENABLEDELAYEDEXPANSION
for %%A in ("*.mkv") do (
    set filename=%%~nA
    set artist=
    set song=
    echo "!filename!"

    for /F "tokens=1,2 delims=-" %%G in ("!filename!") do (
        set artist="%%G"
        set song="%%H"
        echo !artist!
        echo !song!
    )

    echo !song! by !artist!

    ffmpeg -i "%%A" -b:a 192K -id3v2_version 4 -write_id3v2 1 -metadata title="%song%" -metadata artist="%artist%" -flush_packets 0 -vn "%%~nA.mp3"
)

::Add Artwork to MP3
for %%A in ("*.mp3") do (ffmpeg -i "%%A" -i "%%~nA.png" -map 0:0 -map 1:0 -c copy -id3v2_version 3 "UPDATED%%~nA.mp3")

标签: batch-fileaudioffmpegmetadatamp3

解决方案


推荐阅读