ASP.NET - 使用C#保存录制的视频

时间:2016-07-09 11:15:02

标签: javascript c# asp.net recordrtc

我已经试图解决这个问题好几天了,我无法找出问题所在。我是C#和javascript的初学者,所以这可能是一个很重要的因素。所以我使用RecordRTC.js从我的网络摄像头录制视频。从中获取recordedBlob,我想将它保存在我的解决方案中。 这是我在代码隐藏中发送blob的代码:

recordedBuffer.replace('data:video/mp4;base64,', '')
 $.ajax({
                type: 'POST',
                url: 'BasePage.aspx/UploadVideo',
                data: '{ "video" : "' + recordedBuffer + '" }',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: function (data) {
                    alert("SUCCESS: " + data.d);
                }, error: function (xhr, err) {
                    alert(xhr.responseText);
                }
            });

然后在C#中:

[WebMethod()]
    public static string UploadVideo(string video)
    {
        DateTime date = DateTime.Now;
        string fileNameWitPath = MapPathStatic("~/Gallery/Videos/" + date.ToString("yyyyMMddHHmmss") + ".mp4");
//MapPathStatic is a static version I made of Server.MapPath()

    using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
    {
        using (BinaryWriter bw = new BinaryWriter(fs))
        {

            byte[] data = Convert.FromBase64String(video);
            bw.Write(data, 0, data.Length);
            bw.Close();

            return fileNameWitPath;
        }
    }
}

正在使用正确的文件创建文件。但是当我尝试播放它时,它说它无法渲染文件。这只是1-2秒的视频。所以视频正在中途被破坏?怎么了?为什么它没有正确渲染。 我也找到了使用PHP保存文件的解决方案,但我真的很想用C#来实现这个目的。

任何帮助或建议都将不胜感激!

0 个答案:

没有答案