В это время это не представляется возможным создать Facebook целей Живого потока с помощью API REST или с клиентским приложением на стороне ... read more
Там решение перекодировать жить/видео (/ MP4 HLS) поток в RTMP (Facebook) с помощью ffmpeg.
Transcode HLS Для RTMP (Facebook жить)
ffmpeg -re -i "http://domain/x/x/input.m3u8" -acodec libmp3lame -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline -s 426x240 -bufsize 6000k -vb 400k -maxrate 1500k -deinterlace -vcodec libx264 -preset veryfast -g 30 -r 30 -f flv "rtmp://rtmp-api.facebook.com:80/rtmp/111111111111111?ds=1&a=XXXXXXXXXXXXXXXXX"
перекодировать MP4 Для RTMP (Facebook живой)
ffmpeg -re -i ./video.mp4 -acodec libmp3lame -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline -s 426x240 -bufsize 6000k -vb 400k -maxrate 1500k -deinterlace -vcodec libx264 -preset veryfast -g 30 -r 30 -f flv "rtmp://rtmp-api.facebook.com:80/rtmp/111111111111111?ds=1&a=XXXXXXXXXXXXXXXXX"
Facebook video format Формат видео:
- Мы принимаем видео в разрешении максимум 720p (720 x 1280) в 30 кадрах в секунду. (или 1 ключевой кадр каждые 2 секунды)
- Вы должны отправить I-кадр (ключевой кадр) не реже, чем раз в две секунды по всему потоку.
- Рекомендуемая максимальная скорость передачи данных составляет 4 Мбит/с.
- Живая API принимает H264 кодированное видео и AAC закодированы только аудио
Аудио Формат:
- Pixel Aspect Ratio: Площадь
- Типы кадров: Progressive Scan
- Audio Sample Рейтинг: 44.1 KHz
- Аудио Битрейт: 128 Кбит/с стерео
- Bitrate Кодирование: CBR
Создать Facebook live «Go on-Диалог»
вызов следующий код для инициализации всплывающее окно с контролем, которые определяют, куда направить свой запрос POST.
<script>
document.getElementById('liveButton').onclick = function() {
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'create',
}, function(response) {
if (!response.id) {
alert('dialog canceled');
return;
}
//rtmp://rtmp-api.facebook.com:80/rtmp/111111111111111?ds=1&a=XXXXXXXXXXXXXXXXX
alert('stream url:' + response.stream_url);
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'publish',
broadcast_data: response,
}, function(response) {
alert("video status: \n" + response.status);
});
});
};
</script>