답변1
기본적으로 파일을 조회한 다음(변수에 저장) 조회한 파일을 FFmpeg에 공급하기만 하면 됩니다.
물론,Windows의 배치 언어로 충분합니다.. 하지만 저는 그것에 능숙하지 않기 때문에 여기에 PowerShell 스크립트가 있습니다.
# Searching for files with the Get-ChildItem cmdlet and saving their relevant properties in an array:
# NOTE: -File will only work with PowerShell-versions >= 3.
[array]$FilesToRotate = Get-ChildItem -Path "C:\PATH_TO_FILES" ((-Filter *.mp4)) ((-Recurse)) -File | ForEach-Object {
# NOTE: This part is a bit tricky - I just added it so I'm able to save the parent-path of each file in an object.
# NOTE: One could also omit the whole ForEach-Object and use the Split-Path cmdlet inside the output-file's specification in FFmpeg's code.
[PSCustomObject]@{
InFullName = $_.FullName
# Will put the output-file in the same folder as the input-file and add "_ROTATION" as suffix in its name.
OutFullName = "$(Split-Path -Parent -Path $($_.FullName))\$($_.BaseName)_ROTATE$($_.Extension)"
}
}
# Processing the files with FFmpeg using PowerShell's Start-Process cmdlet:
for($i=0; $i -lt $FilesToRotate.Length; $i++){
Start-Process -FilePath "C:\PATH_TO_FFMPEG\ffmpeg.exe" -Argumentlist " -i `"$($FilesToRotate[$i].InFullName)`" -c copy -metadata:s:v:0 rotate=<x> `"$($FilesToRotate[$i].OutFullName )`" " ((-Wait)) ((-NoNewWindow))
}
이 스크립트는 다음과 같이 FFmpeg를 실행합니다.당신이 제공한 코드(확인하지는 않았지만 어쨌든 쉽게 교체할 수 있습니다) 결과 파일을 이름 접미사 "_ROTATE"를 사용하여 동일한 폴더에 저장합니다. 따라서 "MyMovie2017.mov"는 "MyMovie2017_ROTATE.mov"가 됩니다. (완전히 새로운 폴더로 렌더링하려면 $($FilesToRotate[$i].ParentPath)
원하는 경로로 바꾸십시오.)
참고: 이중 괄호 안에 있는 항목은 (( ))
선택사항입니다.
-Filter
(하나)의 특정 유형의 파일만 주소 지정합니다. 예를 들어 *.mp4는 MP4 파일만 찾습니다. 파일 형식이 두 개 이상이지만 변환할 필요가 없는 파일(예: 텍스트 파일)이 많은 경우-Exclude
변환하고 싶지 않은 모든 형식을 사용 하거나-Include
변환해야 하는 형식만 사용할 수 있습니다(-Include
예-Filter
: - it 속도는 느리지만 두 개 이상의 형식을 포함할 수 있습니다.)-Recurse
하위 폴더도 살펴보겠습니다.-Depth
PowerShell v 5+에서도 사용할 수 있습니다 .-Wait
한 번에 하나의 ffmpeg-instance를 엽니다. 이것이 없으면 모든 인스턴스가 병렬로 열립니다.-NoNewWindow
PowerShell 콘솔에 ffmpeg-instance의 출력이 표시되지만, 그것이 없으면 ffmpeg의 모든 인스턴스가 새 콘솔 창에서 열립니다. 에서만 의미가 있습니다-Wait
.
스크립트를 시작하기 전에 모든 이중 괄호(원하지 않는 경우 그 내용)를 삭제해야 합니다.
또한 다음 사항을 조정해야 합니다.
C:\PATH_TO_FILES
분명히 파일 경로입니다.C:\PATH_TO_FFMPEG\ffmpeg.exe
분명히 ffmpeg.exe의 경로입니다.rotate=<x>
- 을 , 또는<x>
으로 바꿔야 합니다 . (코드 소스에 설명되어 있음)90
180
270
추가 설명이 필요한 경우 기꺼이 도와드리겠습니다.
답변2
원라인 솔루션
npx rotate-video --source=source_path --destination=destination_path --extension=MP4 --angel=270
메모:FFMPEG
먼저 CLI를 설치해야 합니다설치하다