2016-06-28 4 views
3

저는 페이스 북 라이브에 rtmp-stream을 보내기 위해 gstreamer 스크립트를 사용하고 있습니다. 나는 많은 것을 시도했다. 스트림은 내 RTMP 서버로 보내면 작동하지만 페이스 북은이를 받아들이지 않습니다.Gstreamer for Facebook Live

저는 우분투 15.10에서 일하고 있습니다. 나는 OBS에 이상한 행동이 있다는 것을 알았다. MBP에서 작동하는 것처럼 보이지만 내 상자에서는 작동하지 않습니다.

아래의 스트림은 Facebook Live에서 언급 한 비디오/오디오 사양에 맞습니다. 나는 여기에 나열했습니다

비디오 포맷 :

  • 우리는 최대 720 (720 × 1280) 해상도의 영상을 받아, 초당 30 프레임. (또는 2 초마다 1 키 프레임). CHECK
  • 스트림 전체에서 2 초마다 한 번 이상 I 프레임 (키 프레임)을 보내야합니다. CHECK
  • 권장 최대 비트 전송률은 2500Kbps입니다.

    • 90 :

    • 라이브 API는 H264 인코딩 된 비디오 및 AAC 인코딩 오디오는

    비디오 길이를 확인 받아 들인다 CHECK 그렇지 않으면 스트림이 실패합니다 255 자 미만이어야합니다

  • 제목을 확인 라이브 스트림의 최대 길이 (분) CHECK (지정되지 않았으므로 괜찮을 것으로 가정)

  • (라이브 대화 상자 또는 제작자 도구를 통해) 미리보기 스트림의 최대 길이는 60 분입니다. 60 분 후에 새로운 스트림 키가 이어야합니다. CHECK는 (지정되지 않은, 그래서 그것을 잘해야 가정)

고급 설정 :

  • 픽셀 화면 비율 : 광장 CHECK, gstreamer를
  • 프레임 유형을의 기본 동작 : 프로그레시브 스캔 알 수없는 프로그레시브 스캔이 내게 표준 인 것 같습니다
  • 오디오 샘플 속도 : 44.1 KHz CHECK
  • 오디오 비트율 : 128Kbps 스테레오 CHEC K
  • 비트 전송률 인코딩 : CBR의 CHECK,
gstreamer를의 기본 동작

있는 GStreamer 명령 :

gst-launch-1.0 v4l2src ! "video/x-raw,width=1280,height=720,framerate=30/1" ! x264enc bitrate=2500 key-int-max=10 ! video/x-h264,profile=high ! h264parse ! queue ! flvmux name=mux alsasrc device=hw:1 ! audioresample ! audio/x-raw,rate=44100 ! queue ! voaacenc bitrate=128000 ! queue ! mux. mux. ! rtmpsink location=\"rtmp://rtmp-api.facebook.com:80/rtmp/xxxxxxxxxxxxxxx?ds=1\&a=xxxxxxxxxxxxxxx\" 

사람이 살고있는 GStreamer 페이스 북에 대한 작업나요?

+0

당신은 이상한 행동을 관찰하고 있습니까? 문제가있는 곳의 공개 라이브 비디오에 대한 링크가 있습니까? – Brad

+0

또한 키 프레임 간격을 다시 확인하십시오. 매개 변수 이름은 다를 수 있지만 https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping에 따라 'keyint'입니다. 그리고 10 프레임이 너무 작습니다 ... 2 초 동안 60 프레임으로 설정하려고합니다. 그렇지 않으면 해당 키 프레임에서 모든 대역폭을 먹게됩니다. – Brad

+0

나는 그것을 더 높은 키 프레임으로 시도했지만 운은 없었다. 또한 링크 된 기사는 ffmpeg 용이며 gstreamer- 문서에서 핵심 프레임 인수를 찾았으므로이 방법으로 작동해야합니다. Facebook에서 동영상이 오프라인 인 것으로 알려졌지만 실제로 도움이되지 않습니다. –

답변

0

변경 :

video/x-h264,profile=high 

에 :

video/x-h264,profile=baseline 

그리고 그것은 작동합니다.나는 다음과 같이 시도했다 :

gst-launch-1.0 flvmux name=mux streamable=true ! rtmpsink location="<rtmp_url_for_fblive>" videotestsrc is-live=true ! "video/x-raw,width=1280,height=720,framerate=30/1" ! identity sync=true ! x264enc bitrate=2500 key-int-max=60 ! video/x-h264,profile=high ! h264parse ! queue ! mux. audiotestsrc is-live=true ! audio/x-raw,rate=44100,channels=2 ! identity sync=true ! voaacenc bitrate=128000 ! queue ! mux.