http를 통해 ffmpeg로 화면 브로드캐스트

http를 통해 ffmpeg로 화면 브로드캐스트

격리 기간 동안 저는 친구들에게 데스크톱을 공유하여 실습에서 git이 무엇인지 설명하려고 했습니다. 문제는 다음과 같습니다

  • 저는 FreeBSD를 사용합니다.
  • 우리는 NAT 뒤에 있습니다. 하지만 이러한 목적으로 구성된 VPN(Wireguard)이 포함된 VPS가 있습니다.
  • 나는 무료이고 간단한("suckless") 소프트웨어를 사용하고 싶습니다.

내가 사용하기로 결정한 것은 데스크탑을 모든 포트와 공유 ffmpeg -f x11grab하고 출력을 모든 포트로 스트리밍하는 것입니다. 하나의 가상 네트워크에 있을 수 있으므로 친구들은 VLC, MPV 또는 웹 브라우저를 사용하여 문제 없이 이 스트림을 시청할 수 있습니다. ffmpeg가 http로 직접 출력할 수 없다는 것을 이해했을 때 문제가 발생했습니다. rtmp를 통해 YouTube 라이브 스트리밍(무료 서비스가 아닌 오버헤드)으로 전송하고 HLS 프로토콜 및 HTTP 서버로 분할 및 공유하는 등 많은 솔루션을 시도하다가 HLS에 중지되었습니다.

내 ffmpeg 실행 중:

ffmpeg -f x11grab -video_size 1920x1080 -i :0 -c:v h264 -f hls -hls_time 1 -g 15 stream.m3u8

그리고 제가 테스트하고 있는 mpv는 다음과 같습니다.

mpv --no-cache --no-resume-playback stream.m3u8

약 10~15초 정도 지연이 있는 것으로 확인됩니다. 비디오 비트 전송률을 0.5메가바이트로 설정하더라도 비슷한 지연 시간(물론 품질도 좋지 않음)이 있으므로 문제가 대역폭에 있지 않다는 의미일 수 있습니다. [그리고 로컬보다 더 먼 곳에서는 방송을 시작하지도 않았습니다. PC!].

나는 찾았다그래서 대답사용자가 HLS가 낮은 대기 시간을 위한 잘못된 프로토콜이라고 말하는 경우. 나는 많은 블로그, Wikipedia 기사 및 ffmpeg Wikipedia(스트리밍가이드) 그러나 해결책을 찾지 못했습니다. 대기 시간을 어떻게 줄일 수 있습니까? 또는 대신 어떤 소프트웨어를 사용하여 친구들이 Discord 및 Skype처럼 몇 초에 해당하는 대기 시간으로 내 데스크탑을 볼 수 있도록 할 수 있습니까? 말할 가치가 있습니다. 터미널 창을 공유할 것이기 때문에 좋은 품질은 필요하지 않으며 드롭은 괜찮습니다.

관련 정보