FFMPEG를 사용하여 Mp4 파일 크기를 9:16 YT 짧은 크기로 조정

FFMPEG를 사용하여 Mp4 파일 크기를 9:16 YT 짧은 크기로 조정

저는 최근 Twitch API를 사용하여 Twitch 동영상을 스크랩한 다음 YouTube에 게시하는 봇을 작성했습니다. 예를 보려면 여기 내 YouTube 채널을 참조하세요.https://www.youtube.com/channel/UCuhWw8LbPWdkybIF9olAszw

제가 가진 문제는 이러한 일반 트위치 동영상을 자동으로 업로드할 수 있는 YouTube 클립으로 변환하는 방법을 찾고 싶다는 것입니다. 얼굴 카메라를 포함할 필요가 없으며 전체 비디오를 9:16 형식으로 압축하면 됩니다.

FFMPEG를 사용해 보았지만 이 작업을 올바르게 수행하고 있는지 잘 모르겠으며 이를 수행하는 방법에 대한 도움이나 조언이 실제로 필요합니다.

변환하려는 비디오의 예는 다음과 같습니다.https://www.youtube.com/watch?v=hZecXrvd6_g

(노골적인 표현을 죄송합니다. 이것은 내 봇 채널에서 처음으로 본 동영상입니다.)

Tldr: mp4 파일을 9:16 비디오 형식으로 변환


편집: FFMPEG 명령을 실행했습니다. ffmpeg -i video.mp4 -vf scale=1280:720 output.mp4

미리 감사드립니다! 이것은 며칠 동안 나를 괴롭혔습니다.

답변1

scale비디오 크기가 조정됩니다. 종횡비를 변경하려면 다음을 시도해 보세요.

ffmpeg -i video.mp4  -vf setdar=9/16 output.mp4

답변2

아래와 같이 클립을 9/16으로 자릅니다.

ffmpeg -i video.mp4 -vf crop=ih*(9/16):ih output.mp4

답변3

YouTube Shorts의 최대 길이는 60초입니다. 이 명령을 사용하여 비디오를 세그먼트로 분할하고 크기를 조정할 수 있습니다.

ffmpeg -i video.mp4 -ss 00:00:00 -t 00:01:00 -vf "[in]scale=iw*min(1080/iw\,1920/ih):ih*min(1080/iw\,1920/ih),pad=1080:1920:(1080-iw)/2:(1920-ih)/2[out]" newVideo.mp4

이 명령은 처음 1분을 잘라내며, 다른 부분을 잘라내려면 이를 계산하고 실행하기 위한 수학적 논리를 작성해야 합니다. 저는 PHP로 작업했습니다. 다음을 확인하세요. https://gist.github.com/drpshtiwan/45fd233695b168056af980c56b93579c


임의로 선택할 수 있는

또는 분할된 비디오(newVideo.mp4)를 검정색 배경, 지속 시간 60초 및 9/16 비율을 갖는 배경 비디오에 오버레이해야 합니다. 이것이 ffmpeg 명령의 마법입니다 ;) Full HD 영상을 사용하고 중앙에 영상을 오버레이 했습니다.

ffmpeg -i background.mp4 -i newVideo.mp4 -filter_complex "[1:v]scale=1080:-1[v2];[0:v][v2]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -map 1:a  -c:v libx264 -c:a  copy shortVide.mp4

답변4

이것은 나에게 효과적입니다.

ffmpeg -i sample.mp4 -vf "crop='min(iw,ih)*9/16:min(iw,ih):iw/2:ih/2'" cropped.mp4

관련 정보