FFmpeg : h264_qsv 인코더 및 crf 문제


3

방금 H.264 (Intel Quick Sync) 코덱을 사용하여 Bandicam에서 게임 플레이를 녹화 할 때 FFmpeg에 대해 알게되었습니다. 불행히도 내 비디오 중 하나가 AVI 래퍼로 녹화되어 결국 무손실 방식으로 MP4로 코드 변환하고 싶었습니다.

래퍼를 변경하려는 이유는 Adobe Premiere Pro CC 2017이 어떻게 든 AVI를 제대로 처리하지 못하기 때문에 H.264 및 MP4를 래퍼로 내 보내면 전체 비디오가 깨져 보입니다.

따라서 FFmpeg를 잡고 다음 명령으로 비디오를 트랜스 코딩하려고합니다.

ffmpeg -i vid.avi -c:v h264_qsv -crf 10 -r 50 -c:a aac -b:a 192k -ac 2 vid.mp4

노란색으로 나타나는 오류는 다음과 같습니다.

Codec AVOption crf (Select the quality for constant quality mode) specified for output file #0 (vid.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.

나는 H.264 (Intel Quick Sync)가 CRF를 지원한다고 확신합니다.

이 주위에 아무것도 없습니까? 나는 FFmpeg ver. 20170921-183fd30, 64 비트, 정적

편집 : 해결 방법 rn은 libx264로 돌아가서 faster, veryfast또는을 실행하는 superfast것이지만 Intel Quick Sync를 사용하여 시간을 절약하고 싶습니다.

답변:


5

QSV 엔코더에는 CRF라는 파라미터가 없습니다. 동등한 속도 제어 방법은 LA_ICQ입니다.

https://software.intel.com/en-us/articles/common-bitrate-control-methods-in-intel-media-sdk :

x264의 기본 속도 제어 (FFmpeg의 기본 h264 구현)는 CRF입니다. 이를 통해 비트 전송률 변동이 목표 품질 수준을 유지할 수 있습니다. 미디어 SDK의 ICQ 및 LA_ICQ가이 알고리즘 클래스에 가장 적합합니다.


이를 호출하려면 양식의 명령이 필요합니다.

ffmpeg -i in.mp4 -c:v h264_qsv -global_quality 10 -look_ahead 1 out.mp4

look_ahead이어야합니다 1. global_quality값이 낮을수록 품질이 좋아집니다. ~ 25는 x264 CRF 23과 동일해야합니다.


알았어, 고마워 명확히하기 위해, global_quality0 의 설정은 h.264의 0 CRF와 비슷한 무손실입니다. ??
KennyG1092

아니요.이 인코더에는 무손실 모드가 없다고 생각합니다.
Gyan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.