더 많은 공간을 차지하더라도 ffmpeg를 사용하여 mp4 비디오 파일을 avi로 변환하지만 동일한 품질로 변환하고 싶습니다. 내가 단순히한다면 :
ffmpeg -i file.mp4 file.mp4.avi
결과 avi 파일은 품질이 매우 낮고 픽셀 화됩니다. 비디오 및 오디오 품질을 유지하면서 어떻게이 변환을 수행 할 수 있습니까?
답변
한 코덱에서 다른 코덱, 비디오 또는 오디오로 코드 변환 할 때마다 항상 품질이 떨어지지 만 MP4 컨테이너 유형에서 AVI 컨테이너로만 변경하려는 경우이를 피할 수 있습니다. codec:copy
코드 변환 할 이유가없는 경우 도움이 될 수 있습니다 (더 빨라야 함).
특정 비디오 코덱을 사용해야하므로 트랜스 코딩해야하는 경우 위의 의견에서 zetah의 제안을 사용하고 -sameq
스위치를 사용할 수 있기를 바랍니다 . 또는 qscale
옵션을 사용하여 품질을 수동으로 설정할 수 있습니다. 숫자가 낮을수록 품질은 좋아 지지만 파일 공간이 더 많이 사용됩니다.
내가 사용한 비디오를 마지막으로 트랜스 코딩 qscale=8.0
할 때 입력 품질에 맞는 최적의 것을 찾도록 실험 해 보는 것이 좋습니다.
Marty Jay는 sameq가 입력에서와 동일한 양자화기를 의미하므로 동일한 품질을 얻지 못할 수 있다고 언급했습니다. 그가 인용 한 기사는 멀티 패스 변환을 사용하여 언급 한 것으로, 품질을 유지하면서 압축률을 높이는 좋은 방법입니다.
답변
내 해결책 :
ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi
즐겨!!
답변
여기에 내가 사용하는 2 패스 (고급 단순 프로필)가 있습니다.
패스 1 :
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null
패스 2 :
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi