질문:
하나의 해상도/비트 전송률에서 소스 비디오의 "패스 1" 인코딩을 동일한 소스의 "패스 2" 인코딩에 대한 입력으로 사용하는 것이 적법합니까?다른해상도/비트레이트? 나는 그것을 시도했고 그것은그렇군요작동하지만 일반적인 경우에는 그렇게 될지 전혀 확신할 수 없습니다. 스트림 프로필(I/P/B 프레임 선택 등)은 두 패스에 대해 동일한 매개변수를 사용하는 것과 다르게 보이지만 "충분히 좋아" 보입니다.
나는 이것에 대해 권위 있는 답변이 필요한 시점에 와 있습니다.
왜타네이션에 1그렇게 하시겠습니까?
2패스 인코딩은 FFMPEG(실제로는 x264)의 미친 버그를 수정하기 때문에 아마도 곧 수정되지 않을 것입니다. 컴퓨터의 속도에 따라 비디오의 처음 ~1초 정도는 종종 매우 부적절합니다. 비트레이트. 이는 매우 빠른 시스템(예:EC2 c4.8xlarge). 유휴 상태의 i7 쿼드코어 MacBook Pro아니다이 버그를 재현하기에 충분합니다.
그것은 둘 중 하나일 것이다대단히높은:
단일 패스 CBR(없음)VBV지정된
(VBV가 없는 CBR은 무시하세요.전혀 CBR이 아닙니다)
또는 너무 낮음:
- 단일 패스 CBRVBV
- 단일 패스 VBR:QScale~와 함께VBV그리고 최대화
VIFp와 SSIM 품질 측정 모두 더 낮은/높은 비트 전송률이 실제로 불필요하게 감소/증가된 품질(즉, 비트 전송률)에 해당한다는 것을 보여줍니다.해서는 안 된다더 높거나 더 낮았습니다).
2패스 CBR 인코딩 수행이 작동합니다.엄청난시간이 있다면 문제를 해결해 보세요. 안타깝게도 단일 해상도에 대한 2패스 인코딩의 대기 시간을 감당할 수 없습니다.
그럼 당신이 하고 싶은 일은 무엇인가요?
현재 낮은 해상도(480)에서 초기 트랜스코드를 수행하고 있습니다. 여기에는 가능한 한 많은 재생 장치가 포함됩니다. 나는 이것을 패스 1로 사용하고 싶습니다. 어쨌든 480 해상도는 형편없기 때문에 비디오의 첫 번째 순간의 어리석은 비트 전송률에 관계없이 패스 1 비디오를 내 480으로 게시할 수 있습니다.
그런 다음 사용하고 싶습니다480 패스 1 정보더 높은 해상도에서는 2번만 통과하세요. CBR/VBV의 경우 이는 다음과 같습니다.
ffmpeg -i source.mp4 -pass 1 -vf scale=852:480 -c:v libx264 -b:v 1000k ... 480.mp4
ffmpeg -i source.mp4 -pass 2 -vf scale=1280:720 -c:v libx264 -b:v 2500k ... 720.mp4