gpt4 book ai didi

windows - 将 .MOD 视频文件转换为 .mp4 但保持原始文件日期

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

Windows 10,
ffmpeg

我对ffmpeg很陌生,所以我无法弄清楚。我正在尝试使用命令复制然后将目录中的所有 .MOD 视频文件转换为 .mp4 文件并保留 .MOD 文件的原始创建日期。我不明白如何将循环中的当前文件映射到 map_metadata 选项。此命令有效,但不维护元数据( taken from this post)

FOR /F "tokens=*" %G IN ('dir /b *.MOD') DO ffmpeg -i "%G" -acodec copy "%~nG.mp4"

我尝试在上述命令中包含 map ,但出现各种错误,主要是“无效的输入文件索引:1”。下面的命令将复制和转换,但新的 .mp4 文件没有原始文件日期,所以我必须使用 map_metadata错误地:
FOR /F "tokens=*" %G IN ('dir /b *.MOD') DO ffmpeg -i "%G" -acodec copy -map_metadata 0 "%~nG.mp4"

FOR /F "tokens=*" %G IN ('dir /b *.MOD') DO ffmpeg -i "%G" -map_metadata 0 -acodec copy "%~nG.mp4"

有什么建议么?谢谢

更新

我用 Powershell 得到了这个! (感谢 this post )
$oldvids = Get-ChildItem *.MOD -Recurse
foreach ($oldvid in $oldvids) {
$newvid = [io.path]::ChangeExtension($oldvid.LastWriteTime.toString("MMMddyyyy_HHmmss"), '.mp4')
ffmpeg.exe -i $oldvid.FullName -c:v libx264 -crf 18 -c:a aac -q:a 100 $newvid
}

输入:MOV01E.MOD(创建日期 2012 年 4 月 1 日上午 10:10)

输出:Apr012012_101005.mp4

另一个更新

上面的命令很有效,但我刚刚意识到所有文件都输出到了根目录。我稍微更改了命令,但我不确定发生了什么:
Get-ChildItem *.MOD -recurse | % {
$newvid = [io.path]::ChangeExtension($_.LastWriteTime.toString("MMMddyyyy_HHmmss"), '.mp4')
ffmpeg.exe -i $_.FullName -c:v libx264 -crf 50 -c:a aac -q:a 100 $newvid
}

最佳答案

我只需要更改输出文件以包含目录路径

Get-ChildItem *.MOD -recurse | % {
$newvid = [io.path]::ChangeExtension($_.LastWriteTime.toString("MMMddyyyy_HHmmss"), '.mp4')
ffmpeg.exe -i $_.FullName -c:v libx264 -crf 20 -c:a aac -q:a 100 ($_.DirectoryName + "\" + $newvid)
}

关于windows - 将 .MOD 视频文件转换为 .mp4 但保持原始文件日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658866/

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