ffmpeg를 사용하여 비디오 압축, 변환 및 크기 조정

1753 단어
내 게시물은 일반적으로 나 자신을 위한 메모 및 참조 자료이며 다른 사람들이 유용하게 사용할 수 있기를 희망하여 여기에 게시합니다.

주어진 소스 비디오source.mp4:

약 1.5Mbps 비디오/128kbps 오디오의 합리적인 광대역 비트 전송률로 웹용으로 압축하려면:

ffmpeg -i source.mp4 -c:v libx264 -b:v 1.5M -c:a aac -b:a 128k target.mp4


압축하고 WebM으로 변환하려면:

ffmpeg -i source.mp4 -c:v libvpx-vp9 -b:v 1M -c:a libopus -b:a 128k target.webm


(33% 낮은 비트 전송률(VP9의 경우 1M, H.264의 경우 1.5M)은 의도적입니다. VP9는 H.264보다 약 20-50% 더 효율적으로 인코딩합니다. Opus와 AAC는 거의 동일합니다.)

고해상도 소스 비디오를 웹( qHD for cellular, HD for broadband )에 더 적합한 것으로 축소하려면 -filter:v 인수가 사용됩니다.

ffmpeg -i source.mp4 -c:v libvpx-vp9 -b:v 0.33M -c:a libopus -b:a 96k \
-filter:v scale=960x540 target.webm


명령줄 옵션: -c:v 비디오 코덱을 지정합니다. -b:v 비디오 비트 전송률을 지정합니다. -c:a 오디오 코덱을 지정합니다. -b:a 오디오 비트 전송률; -filter:v는 비디오 스트림에 필터(이 경우 스케일)를 적용합니다.

WebM에서 이전 VP8 코덱을 사용하려면 libvpx 대신 libvpx-vp9를 사용하십시오.

소스 비디오에 오디오 트랙이 없으면 -c:a-b:a 인수를 생략하십시오.

컨테이너 형식을 명시적으로 지정하려면 -f 명령줄 옵션인 -f mp4 또는 -f webm 를 사용하십시오.

MP4 컨테이너의 경우 사용된 비디오 코덱은 H.264이고 오디오 코덱은 거의 보편적인 브라우저 지원을 즐기는 AAC입니다.

Chrome 및 관련 브라우저용. WebM 컨테이너는 VP8/9 및 Opus를 사용합니다.

Chrome은 MP4(H.264/AAC)도 지원하므로 파일 크기 및/또는 품질이 향상되지 않는 한 WebM을 제공하는 것은 의미가 없습니다.

비트 전송률은 분명히 다양할 수 있습니다. 나는 0.5M 비디오와 96k 오디오를 셀룰러에 사용합니다.

좋은 웹페이지 즐겨찾기