ffmpeg를 통해 스트리밍하는 hls를 사용했습니다.
스트리밍 시작 시간이 몇 초 동안 지연됩니다.
매우 지연되는 동안 스트림에서 4k 비디오의 스 트리밍을 원할 때.
내가 할 수있는 일은 무엇입니까?HLS 스트리밍 FFMPEG의 대기 시간 줄이기
답변
4K 비디오
...
은 물론 그것을하지, 몇 초
예 존재합니다. 매우 높은 비트 전송률을 재생하기에 충분한 데이터를 버퍼링하는 데는 시간이 걸립니다. 뿐만 아니라 HLS 플레이어는 일반적으로 시작 부분을 디코딩하기 전에 몇 개의 세그먼트가 필요합니다. @iangetz에 따르면, 세그먼트 길이를 줄일 수 있지만 이제 모든 여분의 HTTP 요청으로 인해 더 많은 오버 헤드가 생길 것입니다.
는
는 HLS를 사용하지 마십시오
HLS 스트리밍을위한 대기 시간을 줄일 수 있습니다. HLS 또는 DASH와 같은 다른 세그먼트 화 된 스트리밍 프로토콜은 낮은 대기 시간에 맞게 최적화되어 있습니다. HTTP CDN 재사용, 네트워크 변경 (예 : Wi-Fi에서 LTE로 전환) 및 고객이 선택할 수있는 (종종 동적으로) 품질을 유지하면서 재생할 수 있도록 최적화되었습니다.세그먼트 화 된 프로토콜의 본질은 서버/CDN에 개별적으로 업로드되어 업로드 될 비교적 큰 버퍼가 필요합니다. 이것은 매우 유용하지만 낮은 대기 시간이 필요한 경우에는 좋은 절충안이 아닙니다.
대기 시간이 중요한 경우 완전히 다른 기술이 필요합니다. WebRTC를 살펴보십시오. 이 기술을 사용하면 비디오 스트림을 실시간으로 재생할 수 있으며 코덱은 품질보다 지연 시간에 최적화되어 안정성이 낮아 대기 시간이 단축됩니다.또한 유통 인프라에 상당한 투자가 필요합니다.
4k 비디오에 관심이있는 사람이 낮은 대기 시간의 품질 저하가 가치가 있다고 생각하는 상황을 상상할 수 없습니다. 원하는 모든 것을 가질 수는 없습니다 ... 실제로 중요한 것을 선택하고 거기에서 최적화해야합니다. 대기 시간을 줄이려면 품질을 낮추고 인프라를 지원하는 데 많은 시간과 돈을 투자해야합니다. 고품질의 안정적인 스트림을 원하면 기존의 HTTP 기반 CDN에서 DASH (또는 HLS)를 사용하여 좋은 인코딩 매개 변수를 유지할 수 있습니다.
플레이어가 버퍼를 재생하기 전에 충분한 콘텐츠로 채우고있는 것 같습니다.
'hls_time'을 사용하여 비디오 세그먼트 크기를 줄일 수 있으므로 각 세그먼트가 더 빨리 다운로드되지만 서버에 더 많은 HTTP 요청이 발생합니다. 또한 'hls_init_time'으로 첫 번째 세그먼트를 줄이고 다른 세그먼트는있는 그대로 둘 수 있습니다.
http://ffmpeg.org/ffmpeg-all.html#hls-1
hls_init_time의 초 초 초기 대상 세그먼트의 길이를 설정한다. 기본값은 0입니다.이 시간이 첫 번째 m3u8 목록을 통과하면 키 프레임에서 세그먼트가 잘립니다. 재생 목록이 채워지면 ffmpeg는 과 동일한 기간에 세그먼트를 자릅니다. hls_time
hls_time 초 대상 세그먼트 길이를 초 단위로 설정합니다. 기본값 값은 2입니다. 시간이 지나면 다음 키 프레임에서 세그먼트가 잘립니다.
또 다른 옵션은 플레이어가 재생을 시작하기 전에 필요한 버퍼의 양을 줄이는 것입니다. 어떤 플레이어를 사용하고 있는지 잘 모르지만 대부분이 옵션이 있습니다. 지연 스트리밍의 시작에서
인코딩의 대기 시간을 줄이는 방법에 대해 이야기하고 있습니까? 아니면 비디오를 재생하기 전에 필요한 버퍼링 프로세스에 대해 묻는 것입니까? 4k 비디오와 같은 높은 비트 전송률의 비디오로만 길어질 수 있습니까? – Brad
@ 브래드 나는 살아있는 스트림의 재생에 인코딩의 대기 시간을 줄이는 것에 대해 이야기하고 있습니다. 그러나 당신이 저에게 요청한 두 가지 모두를 도와주십시오. 스트리밍에이 코드를 사용했습니다. 내 필요에 따라 더 나아질 것을 권고 해주십시오. '는 FFmpeg - 재 -i input.mp4 -s CGA -f HLS -hls_list_size 0 -g 48 -vcodec libx264 -c하십시오 AAC를 200P/out.m3u8 \t \t -s NHD -f HLS -hls_list_size 0 -g 48 -vcodec libx264 -c : aac 360p/out.m3u8' – parsa