이전 파일을 다시 변환하고 다음 코드를 사용하여 이전 파일의 메타데이터를 새 파일로 복사합니다.
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"
그러나 수정된 날짜와 같은 파일 시스템 메타데이터는 복사되지 않습니다. 해당 메타데이터를 복사할 수 있는 방법이 있나요? 어떠한 제안?
감사해요.
PS 저는 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