ffmpeg保留原始文件日期?

时间:2019-01-31 08:44:17

标签: ffmpeg autohotkey

我用这个批处理在Win7中切断了一堆mp4文件的开始6秒,创建了新文件。效果很好,但是输出文件的日期是新的。如何保持原始日期?但是我不想重新编码mp4文件,它们太多了,太慢了。感谢任何回应。

对于(“ * .mp4”)中的%% a,请执行ffmpeg -i“ %% a” -ss 6 -vcodec复制-acodec复制“ newfiles \ %%〜na.mp4”

2 个答案:

答案 0 :(得分:0)

感谢您的帮助,@ mayudong,但我对powershell一无所知,也无法理解。最终,我通过AHK达成了协议:

SetWorkingDir g:\

#m::
Loop, %A_WorkingDir%\*.mp4
{
	if( InStr(A_LoopFileName,"news")=1 or InStr(A_LoopFileName,"today")=1  ){
		FileGetTime,mt,% A_LoopFileLongPath
		runwait,ffmpeg -y -i "%A_LoopFileLongPath%" -ss 8 -vcodec copy -acodec copy "g:\+temp\%A_LoopFileName%"
		FileSetTime,mt,g:\+temp\%A_LoopFileName%
	}
}
return

答案 1 :(得分:0)

您可以使用 powershell 更改文件日期:

powershell  (ls 'out.mp4').CreationTime = (ls 'in.mkv').CreationTime
powershell  (ls 'out.mp4').LastWriteTime = (ls 'in.mkv').LastWriteTime
powershell  (ls 'out.mp4').LastAccessTime = (ls 'in.mkv').LastAccessTime

在你的情况下,它看起来像这样:

for %%a in ("*.mp4") do (
    ffmpeg -i "%%a" -ss 6 -vcodec copy -acodec copy "newfiles\%%~na.mp4"
    powershell  ^(ls 'newfiles\%%~na.mp4'^).CreationTime = ^(ls ''%%a'^).CreationTime
    powershell  ^(ls 'newfiles\%%~na.mp4'^).LastWriteTime = ^(ls '%%a'^).LastWriteTime
    powershell  ^(ls 'newfiles\%%~na.mp4'^).LastAccessTime = ^(ls '%%a'^).LastAccessTime
)
相关问题