从Blob中正确保存C#中的.mp4文件[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Blob中正确保存C#中的.mp4文件[关闭]相关的知识,希望对你有一定的参考价值。
我想从一个字节数组中保存.mp4文件。这个字节来自websocket,代表用户在Chrome或Firefox等支持的浏览器中使用getUserMedia()
时的网络摄像头和麦克风录音。当我处理所有内容时,我只需要加入视频的多个部分并保存它,我有这个代码:
foreach (TransFile tf in ltf.Value.OrderBy(m=>m.sequence))
using (BinaryWriter writer =
new BinaryWriter(File.Open("d:\\" + ltf.Key + ".mp4", FileMode.Append)))
writer.Write(tf.bytes);
该文件以我的D驱动器结束,但输出视频出现问题:
当我尝试使用VLC打开它时会发生这种情况...打开我视频的唯一玩家是BSPlayer。如何保存此文件,以便任何玩家都可以打开它?
更新:为了修复编解码器错误,我使用ffmpeg
转换了保存的文件,以便能够在播放器中播放此文件,在本地或在网页上使用html5播放器。
答案
好的,你的问题没有正确的解决方案。但我会尝试对此有所了解。
您需要了解有关音频和/或视频文件的两件事。包装和编码。你可以阅读这篇关于这个主题的article。
MP4是一个编码,但MP4文件可以打包成许多不同的结构,这可能是在更简化的播放器中运行视频的问题。
此外,如果您的二进制数据不是MP4文件,您可以保存为MP4,但这不会使此视频数据成为MP4文件。也许你正在保存一些名为.MP4文件的其他格式。
最后,如果您需要保证在MP4中保存,则需要在程序中加入视频转换器以检查格式并在需要时进行转换。
以上是关于从Blob中正确保存C#中的.mp4文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章