그러나 "좋은"목표 비트 전송률을 결정하는 방법이 있는지 궁금합니다.
좋은 대상 비트 전송률은 다음 중 하나의 비트 전송률입니다.
- 자료를 스트리밍하는 네트워크 (예 : 3G 네트워크, 홈 WiFi 등)에서 지원되므로 계산이 매우 쉽습니다.
- 매우 주관적인 척도 인 당신에게 좋아 보인다
22 Mbit / s 또는 45 Mbit / s는 실제로 일반 사용자, 특히 h.264와 같은 이미 압축 된 비디오의 경우 상당히 높습니다. 감당할 수있는 스토리지 용량과 손실 품질을 항상 고려하여 비트 전송률을 "정상적인"값으로 줄일 수 있습니다.
실제로 크기가 필요하지 않거나 편집 할 처리 기능이없는 경우 1080p 비디오의 크기를 720p로 조정할 수도 있습니다.
… 또는 가변 비트 전송률을 시도 할 시점이있는 경우
일정한 비트 전송률의 포인트는 전송 된 비디오의 최대 비트 전송률을 제한하는 병목 현상이있는 스트리밍 미디어 시나리오에 적응하는 것입니다. 오늘날의 멀티미디어 세계에서 이것이 더 이상 의미가있는 것은 아닙니다.
비디오를 초당 일정한 양의 비트로 압축하면 기본적으로 인코더가 항상 같은 시간의 비트를 사용하여 동일한 시간 프레임을 인코딩하도록 지시합니다. 이것이 최선의 접근입니까? 지금까지 짐작 하셨겠지만 그렇지 않습니다. 수동 브레이크 에서 CRF 가이드 인용 (나중에 다시 설명하겠습니다) :
눈은 움직이고있을 때보 다 정지 된 물체를 더 자세하게 인식합니다. 이로 인해 비디오 컴프레서는 사물이 움직일 때 더 많은 압축을 적용하고 (세부 사항을 더 떨어 뜨릴 수 있음), 사물이 여전히 움직이면 더 적은 압축을 적용 할 수 있습니다 (더 자세하게 유지). 주관적으로 비디오의 품질은 더 좋아 보입니다
따라서 가능할 때마다 가변 비트 전송률을 사용 하는 것이 좋습니다. 일정한 비트 전송률 비디오의 동일한 파일 크기에서도 비디오의 품질이 좋아집니다.
또한 대부분의 인코더 (가장 유명한 x264) 는 일정한 비트 전송률을 사용하도록 지시 할 때 종종 성능 이 저하됩니다. 프레임에 몇 비트를 쓰고 싶은지에 대해 좀 더 "자유"를 부여하는 것이 좋습니다. 결국, 그것은 당신이 아닌 인코더의 일입니다. 그리고 이것을 "일정한 품질"이라고합니다.
충분합니다 – 실제로 그 의미는 무엇입니까? FFmpeg를 사용하여 비디오를 인코딩하는 경우 이미 충분한 도구를 사용하고있는 것입니다. x264가 설치되어 있고 최신 버전을 사용하는 경우 현재 무료로 제공되는 최고의 인코더 중 하나를 사용하고 있습니다. 고정 된 비트 전송률로 인코딩하는 대신 x264가 지출하고자하는 금액을 선택하도록하십시오. Constant Rate Factor 옵션 을 사용하여이를 수행하십시오 .
매우 간단한 경우에 이것은 17에서 23 사이의 값을 설정하는 것을 의미합니다. 나는 리 멀티플렉싱을위한 더 나은 도구 가 있기 때문에 MOV 대신 출력 컨테이너로 MP4를 선택합니다
ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4
값이 낮을수록 품질이 좋아지고 출력이 커집니다. 반대로, 높을수록 품질이 떨어집니다. 동시에 필요한 평균 비트 전송률을 줄일 수 있습니다. 에 대한 자세한 내용 은 x264 인코딩 안내서 를 확인하십시오 ffmpeg
.
당신의 임무는 이제 다음과 같은 CRF 값을 찾는 것입니다.
- 전체 비트 전송률을 감당할 수있는 수준으로 줄입니다.
- 품질이 너무 떨어지지 않아 비디오가 여전히 좋아 보입니다.
예, 여기에는 많은 인코딩 및 시행 착오가 수반되지만 비디오를 조정하고 인코딩 할 때 일상적인 업무입니다.
아, 그리고 명령 행이 마음에 들지 않으면 핸드 브레이크 는 무료로 제공되는 크로스 플랫폼 도구입니다. CRF 슬라이더도 있습니다.