古いファイルを再変換し、次のコードを使用して古いファイルから新しいファイルにメタデータをコピーしています。
for %%f in (*.mp4) do ffmpeg -i "%%f" -i "%%~nf_1.mp4" -map 1 -c copy -map_metadata 0 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a "%%~nf_.mp4"
ただし、変更日などのファイル システムのメタデータはコピーされません。そのメタデータをコピーする方法はありますか? 何か提案はありますか?
ありがとう。
追伸:私はWindows 10を使用しています
答え1
ffmpeg をコピーするメタデータは、ビデオに関連付けられたデータです。変更日はファイルの属性であり、Windows によって管理されますが、ffmpeg によって管理されるものではありません。
フォルダーからC:\dirsource
フォルダーにファイルを変換した場合D:\dirtarget
、次の PowerShell スクリプトは変更日付をソースからターゲットにコピーします。
Get-ChildItem "C:\dirtarget\" *.mp4 | ForEach-Object {
$_.LastWriteTime = (Get-Item ("C:\dirsource\"+$_.Name)).LastWriteTime
}
属性CreationTime
およびについても同様のことができますLastAccessTime
。
という名前のファイルを作成しmyname.ps1
、その中に上記のテキストをコピーします。PowerShell セッションを開始し、 を使用してcd
スクリプトを含むフォルダーに移動し、コマンドを実行します.\myname.ps1
。
「このシステムではスクリプトの実行が無効になっているため、読み込むことができません」というエラー メッセージが表示される場合は、PowerShell ウィンドウで次のコマンドを実行してから、上記を繰り返します。
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted