ffmpeg: libaom-av1을 whatsapp 형식으로 변환하는 방법

ffmpeg: libaom-av1을 whatsapp 형식으로 변환하는 방법

libaom-av1비디오 형식 과 opus오디오 형식이 있는 비디오를 변환하려고 합니다.

여기에 이미지 설명을 입력하세요

다음을 사용하여 mp4로 변환합니다.

ffmpeg -y -i test.mkv -c copy -c:a aac 1.mp4

지금 1.mp4은 사이즈가 있어2.4 mb

하지만 에서 공유하려고 하면 whatsapp다음과 같이 표시됩니다.9.4 MB

여기에 이미지 설명을 입력하세요

whatsapp이제 1.5-2MB 정도의 동일한 크기를 유지하고 다음 과 공유하고 싶습니다.same quality

나도 시도했다

ffmpeg -y -i test.mkv \
  -c:v libx264 -crf 28 -preset medium -profile:v baseline -level 3.0 -pix_fmt yuv420p \
  -c:a aac -ar 44100 -ac 2 -b:a 48k \
  -movflags faststart \
  1.mp4

하지만 품질이 매우 좋지 않습니다

내가 어떻게 할 수 있어?

원본 비디오( test.mkv)는 다음에서 얻을 수 있습니다.https://0x0.st/-Ad4.mp4

답변1

libaom-av1이 실제로 무엇인지 이해해야 합니다.

매우 효율적인 코덱입니다. WhatsApp이 사용하는 libx264보다 약 3배 효율적입니다. 따라서 품질 저하 없이 WhatsApp에 최소 3배 더 큰 파일이 필요하며, AV1 파일에 노이즈 모델이 있는 경우에는 더욱 커야 합니다. H265조차도 AV1보다 효율성이 훨씬 낮습니다. AV1 파일이 필름 그레인으로 인코딩되었는지 여부에 따라 약 30-40% 정도 낮습니다.

당신이 할 수 있는 일은 아무것도 없습니다. WhatsApp은 비디오 코덱으로 고대 H264를 사용하기로 결정했습니다. 당신은 그것을 바꿀 수 없습니다. 2.4MB AV1 파일의 경우 x264가 포함된 9MB는 완전히 합리적입니다.

주제를 벗어:

AV1을 직접 사용해 보려면 공식 프로덕션 인코더 libsvtav1을 사용하여 모든 비디오를 AV1로 인코딩하는 명령이 있습니다. 이 작업에는 꽤 시간이 걸릴 수 있다는 점에 유의하세요(사전 설정 6은 빠른 사전 설정이며 균일한 설정을 원하면 사전 설정 4로 이동하세요). 더 작은 파일은 더 오래 걸리지만 사전 설정 8은 x265 매체보다 효율성이 10%만 높지만 속도는 동일합니다.

ffmpeg -i input.mp4 -vcodec libsvtav1 -acodec copy -qp 23 -preset 6 -g 300 output.mkv

-g 300은 인코더에게 300프레임 뒤에 키프레임을 배치하고 그에 따라 프레임 속도*5에 맞게 변경하도록 지시합니다.

참조 인코더 libaom-av1을 사용할 수도 있지만 svt보다 속도가 느리고 효율적이지 않을 뿐만 아니라 실제로 멀티스레드를 수행할 수도 없습니다. 이 경우 위의 svt 명령보다 효율성이 떨어지지만 훨씬 느립니다. 다음 중에서 시도해 볼 수 있습니다.

ffmpeg -i input.mp4 -vcodec libaom-av1 -cpu-used 6 -acodec copy -crf 23 output.mkv

관련 정보