我使用以下ffmpeg命令将我的屏幕流共享到Facebook.
ffmpeg -f avfoundation -r 10 -video_size 352x288 -i "0" -c:v h264 -f flv
"rtmp://rtmp-api.facebook.com:80/rtmp/1269140699772419?ds=1&a=AaYsXcYcdHQrrrUF"
Run Code Online (Sandbox Code Playgroud)
然而,一旦我按下"Go Live"按钮,然后转到我的Facebook页面,我就会发现一条帖子说我现在就活了.当我按下"播放按钮"时,只有黑色场景持续1~2秒,视频结束.
还有一个奇怪的事情,当我结束直播时,视频可以播放.刷新页面时,我可以找到一条帖子说我现场直播,这篇文章的视频可以成功播放.
任何人都知道为什么在预览和现场直播时可以观看视频而不是确切的直播时刻?
[更新]
我有一个功能可以让用户选择相机并在页面上显示捕获的视频[像这样]。我的代码在 Android Google Chrome 版本 52 之前工作,但不知道为什么它现在坏了。
首先,我检查我可以使用哪些设备。
navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
devices.forEach(function(device) {
console.log(device.kind + ": " + device.label +
" id = " + device.deviceId);
});
})
.catch(function(err) {
console.log(err.name + ": " + err.message);
});
Run Code Online (Sandbox Code Playgroud)
它像我期望的那样返回两个摄像头(一个前面,一个后面)。
videoinput:照相机1中,面向前的id = ef5f41259c805a533261c2d91c274fdbfa8a6c8d629231cb484845032f90e61a凸轮:19 videoinput:相机0,朝后的id = 81448a117b2569ba9af905d01384b32179b9d32fe6a3fbabddf03868f36e4750
然后我按照示例代码进行操作,下面是我使用的内容:
<video id="video" autoplay></video>
<script>
var p = navigator.mediaDevices.getUserMedia({ video: {facingMode: "environment", width: 480, height: 800} });
p.then(function(mediaStream) {
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(mediaStream);
video.onloadedmetadata = function(e) {
// Do …Run Code Online (Sandbox Code Playgroud)