使用WebRTC录制长视频

时间:2016-11-16 10:59:32

标签: javascript html5 google-chrome-extension webrtc webm

我根据this创建了Chrome扩展程序。此扩展程序可以使用 WebRTC ,使用 chrome.desktopCapture link)和带<audio>标记的音频和AudioContext录制屏幕。我的设置:

mimeType: 'video/webm;codecs=vp9',
audioBitsPerSecond: 60 * 1000,
videoBitsPerSecond: 512 * 1000

停止后,视频会在新标签页中打开,用户可以使用该标签进行操作。作为来源,我使用 base64 字符串中的 blob 。像这样:

<video preload="auto">
    <source src="data:video/webm;codecs=vp9;base64,GkXfo59ChoEBQveBA..." type="video/webm">
</video>

问题 :我不能在3-4分钟内播放视频。它就停止了。此后我也无法前后移动视频。此外,我无法获得视频时长(始终为Infinity - 只能在完全停止后才能获得)。

我还尝试将blob保存为文件:src="file:///C:/[username]/video_11162016.webm"。或者在VLC中打开它。同样的问题。无法前进或后退,只能播放和暂停。

但如果我在本地保存视频并将其转换为ffmpeg或任何在线转换器(只需从webm转换为webm) - 视频效果非常好。没有滞后,文物。

来自ffmpeg(ffmpeg.exe -i video.webm)的信息:

1。)录制的文件:

Input #0, matroska,webm, from 'RecordRTC.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Stream #0:1(eng): Video: vp9 (Profile 0), yuv420p(tv), 1858x1088, SAR 1:1 DAR 929:544, 15 fps, 15 tbr, 1k tbn, 1k tbc (default)

2。)转换文件:

Input #0, matroska,webm, from 'RecordRTC_converted.webm':
  Metadata:
    encoder         : Lavf57.57.100
  Duration: 00:06:12.53, start: 0.000000, bitrate: 1262 kb/s
    Stream #0:0(eng): Video: vp8, yuv420p(progressive), 1858x1088, SAR 1:1 DAR 929:544, 15 fps, 15 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default)

我尝试使用ffmpeg.js(link),但我总是遇到“处理输入时发现无效数据”错误。 并尝试将编解码器更改为 vp8 - 无结果。

问题 :如何在不转换的情况下播放录制的视频?或者它必然?

感谢。

0 个答案:

没有答案