2017-01-07 5 views
2

나는 avcodec/x264를 사용하여 인코딩 된 데스크탑의 비디오 스트림과 함께 일종의 풍부한 원격 데스크탑 시스템에서 작업하고 있습니다. 스트림의 GOP 크기를 수동으로 설정해야하며 지금까지 fps/2 크기를 사용하고있었습니다. 는하지만 그냥 위키 백과에 다음과 같은 읽었습니다 :실시간 비디오 스트림을위한 GOP 크기

이 구조 [네 번째 프레임 (P- 프레임)가 (두 번째와 세 번째를 예측하기 위해 필요하기 때문에 @ 문제를 제시 그림의 그룹 B 프레임). 따라서 B 프레임 전에 P 프레임을 전송해야하므로 전송이 지연됩니다 (P 프레임을 유지해야 할 필요가 있음).

클라이언트가 I 프레임 다음의 첫 번째 프레임을 출력하기 위해 GOP의 절반 이상을 수신해야하기 때문에 많은 지연이 발생합니다. 가능한 가장 작은 대기 시간을 원한다면 GOP 크기에 가장 적합한 전략은 무엇입니까? 사진 한 장 찍어?

답변

2

h264의 대기 시간을 최소화하려면 일반적으로 b- 프레임을 피해야합니다. 이러한 방식으로, 디코더는 적어도 디코딩 된 프레임을 일찍 방출 할 기회를 갖는다. 이렇게하면 디코더로 인한 대기 시간을 방지 할 수 있습니다.

미리보기를 줄이거 나 사용하지 않도록 설정하여 대기 시간이 단축되도록 인코더를 조정할 수도 있습니다. x264는 "zero-latency"설정을 가지고있어 최적의 설정을 찾기위한 좋은 출발점이되어야합니다.

"GOP"크기 (af2는 h264에 대해 실제로 정의되지 않았으므로 I (DR) - 프레임 간격)가 대기 시간에 반드시 영향을주지는 않는다고 가정합니다. 이 매개 변수는 클라이언트가 스트림에서 "동기화"할 수있을 때까지 대기해야하는 시간에만 영향을줍니다 (첫 번째 시간 대비 시간).