batch-file - 如何将封面艺术添加到 MP4?
问题描述
我正在尝试找到一种有效的方法来更新我计划放在 DLNA 服务器上的 MP4 文件的元数据。首先,我想让视频文件有封面。
我专门使用640x360
JPG 文件作为封面。
我可能还想添加一些其他标签,例如媒体类型或更新标题。请让我知道可以做什么。
如果有可用的代码建议,请知道我在变量中有文件名详细信息%file%
来处理事情。JPG 与源 MP4 文件具有相同的名称,因此很容易获取文件类型并删除扩展名,这就是我目前所做的。
我的目标是能够简单地将 MP4 文件放到以下批处理文件中,并知道其文件名和完整路径、JPG 文件,并将其附加到原始 MP4 文件中。显然ffmpeg.exe
不会写入它从中提取的文件,所以我让它转到一个临时文件,然后使用 MOVE 用固定文件替换旧文件。
@ECHO OFF
set arg=%1
set file=%arg:~1,-5%
ffmpeg -i "%file%.mp4" -i "%file%.jpg" -acodec copy -vcodec copy -map 0 -map 1:0 "%file%WIP.mp4"
move /Y "%file%WIP.mp4" "%file".mp4"
这段代码似乎不起作用。它没有作为封面出现在 Windows 中,所以我会说它失败了。
解决方案
可以尝试一下,通过在命令行-map 0 -map 1:0
输入名称文件后立即更改参数和位置-map 1 -map 0
,所以,这对我有用......
对不起我有限的英语。
@echo off & cd "%~dp0" && setlocal enableextensions enabledelayedexpansion
for %%i in (%*) do (
set "_arg=%%i"
set "_file=!_arg:~1,-5!"
if exist "!_file!.mp4" ffmpeg -i "!_file!.mp4" -i "!_file!.jpg"--map 1 -map 0 -acodec copy -vcodec copy "!_file!WIP.mp4" && move /Y "!_file!WIP.mp4" "!_file!".mp4"
shift
)