FFMPEG 및 입력 비디오 - 높이와 너비를 동적으로 검색하는 방법은 무엇입니까?

FFMPEG 및 입력 비디오 - 높이와 너비를 동적으로 검색하는 방법은 무엇입니까?

내가 하려는 것은 너비에 대한 높이의 비율을 확인한 다음 HD(1920x1080)에 맞게 크기를 조정할 치수를 결정하는 하나의 스크립트를 설정하는 것입니다. 표준 FFMPEG 명령을 사용하여 이것이 가능합니까?

또한 결과 치수가 각각 1080 또는 1920보다 큰 경우 높이나 너비를 잘라야 합니다.

나는 이미 이것을 읽었습니다. ffmpeg를 사용하여 가로 세로 비율을 유지하면서 너비가 다른 비디오의 크기를 고정 높이로 조정합니다.

따라서 소스 비디오의 어느 크기가 더 큰지 미리 알면 크기를 조정하는 방법을 알 수 있습니다.

답변1

나는 ffprobe를 사용하여 기존 비디오의 너비와 높이를 읽고 bash에서 수학을 수행하여 제한 요소가 무엇인지 알아냅니다.

(하나의 "스크립트"를 설정하고 싶다고 말씀하셨는데, 이것이 bash가 허용될 수 있기를 바랍니다.)

#!/bin/bash

W=$( ffprobe input.mp4 -show_streams |& grep width )
W=${W#width=}

H=$( ffprobe input.mp4 -show_streams |& grep height )
H=${H#height=}

# Target a 1920x1080 output video. 
TARGETW=1920
TARGETH=1080

# I'm not familiar with the resizing parameters to ffmpeg, 
# so I'm writing the below code based on the question you linked to. 

if [ $(( $W * $TARGETH )) -gt $(( $H * $TARGETW" )) ]; then
    # The width is larger, use that
    SCALEPARAM="scale=$TARGETW:-1"
else
    # The height is larger, use that
    SCALEPARAM="scale=-1:$TARGETH"
fi

ffmpeg -i input.mp4 -vf $SCALEPARAM output.mp4

관련 정보