Linux 서버에서 다음을 사용하고 있습니다 convert.sh
. 이 쉘을 사용하면 원본 MP4 파일이 원본 파일에 비해 작은 크기의 avi 파일(100% → 4~5%)로 변경되었습니다. 그런데 해상도가 좋지 않아 화면에 매크로 블록이 보입니다. 필요에 따라 비디오 해상도를 어떻게 조정할 수 있습니까? 솔루션을 공유할 수 있나요?
#!/bin/bashmp4file=$(echo *.MP4)
for file in $mp4file;
do {
Outfile=$(echo $file | sed "s/MP4/.avi/g")
ffmpeg -i $file -c:a copy -s 1280×720 $Outfile
}
done;
답변1
일반 mpeg4(예: h264 또는 h265)보다 더 효율적인 인코더를 사용하세요. mp4와 같은 최신 컨테이너를 사용하는 것이 좋습니다. 다음은 h265를 사용한 예입니다.
Outfile=$(echo $file | sed "s/MP4/.mp4/g")
ffmpeg -i $file -c:v libx265 -crf 25 -c:a copy $Outfile
이 예에서는 원본 비디오의 해상도를 유지합니다(귀하의 예에서는 해상도가 명시적으로 설정됨). 원하는 대로 Constant Rate Factor 매개변수를 조정합니다(숫자가 낮을수록 품질이 높아집니다). 보다위키피디아더 많은 옵션과 예시를 알아보세요.