답변:
한 코덱에서 다른 코덱, 비디오 또는 오디오로 코드 변환 할 때마다 항상 품질이 떨어지지 만 MP4 컨테이너 유형에서 AVI 컨테이너로만 변경하려는 경우이를 피할 수 있습니다. codec:copy
코드 변환 할 이유가없는 경우 도움이 될 수 있습니다 (더 빨라야 함).
특정 비디오 코덱을 사용해야하므로 트랜스 코딩해야하는 경우 위의 의견에서 zetah의 제안을 사용하고 -sameq
스위치를 사용할 수 있기를 바랍니다 . 또는 qscale
옵션을 사용하여 품질을 수동으로 설정할 수 있습니다. 숫자가 낮을수록 품질은 좋아 지지만 파일 공간이 더 많이 사용됩니다.
내가 사용한 비디오를 마지막으로 트랜스 코딩 qscale=8.0
할 때 입력 품질에 맞는 최적의 것을 찾도록 실험 해 보는 것이 좋습니다.
Marty Jay는 sameq가 입력에서와 동일한 양자화기를 의미하므로 동일한 품질을 얻지 못할 수 있다고 언급했습니다. 그가 인용 한 기사는 멀티 패스 변환을 사용하여 언급 한 것으로, 품질을 유지하면서 압축률을 높이는 좋은 방법입니다.
-sameq
그것이 어떻게 진행되는지 볼 것입니다.
-qscale 0
옵션 을 사용하는 것이 좋습니다
Option 'sameq' was removed. If you are looking for an option to preserve the quality (which is not what -sameq was for), use -qscale 0 or an equivalent quality factor option.
내 해결책 :
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
-sameq
AVI 컨테이너에 동일한 비디오 코덱 (H264 가정)을 넣는 스위치 를 사용할 수 있습니다 . 플레이어가 AVI에서 H264를 지원하지 않는 경우 가능한 최상의 비디오 형식 (H264)을 평범한 형식으로 트랜스 코딩해야합니다. 그런 다음 더 높은 비디오 비트 전송률 XVID (2000Kb / s라고 함)를 할당합니다. 오디오는 그다지 IMHO는 중요하지 않지만 MP3로 변환하는 것이 좋습니다. 그러면 AC3