Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从内存流播放视频_Asp.net_Video - Fatal编程技术网

Asp.net 从内存流播放视频

Asp.net 从内存流播放视频,asp.net,video,Asp.net,Video,我在asp.net c#工作。我想从内存流播放视频。我正在加密和解密视频。我将解密后的视频存储在内存流中,并希望在不保存的情况下播放它。我在谷歌上搜索了一下,找到了一些帖子,但大部分帖子都是未完成的,或者提供了directshow的链接。我也尝试过directshow,但它对我来说是全新的,包含了大量的演示,这让我很困惑应该使用哪一个作为内存流 我只想播放从内存流解密的视频数据。请让我知道我能做什么,这将是更好的,如果有一个样本可从任何论坛 我的解密代码 public bool DecryptD

我在asp.net c#工作。我想从内存流播放视频。我正在加密和解密视频。我将解密后的视频存储在内存流中,并希望在不保存的情况下播放它。我在谷歌上搜索了一下,找到了一些帖子,但大部分帖子都是未完成的,或者提供了directshow的链接。我也尝试过directshow,但它对我来说是全新的,包含了大量的演示,这让我很困惑应该使用哪一个作为内存流

我只想播放从内存流解密的视频数据。请让我知道我能做什么,这将是更好的,如果有一个样本可从任何论坛

我的解密代码

public bool DecryptData(String inName, String outName, byte[] rijnKey, byte[] rijnIV)
{
   FileStream fin = null;
    FileStream fout = null;
    CryptoStream decStream = null;

    try
    {
            fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

            //Create variables to help with read and write.

            byte[] bin = new byte[bufLen]; //This is intermediate storage for the encryption.
            long rdlen = 0; //This is the total number of bytes written.
            long totlen = fin.Length; //This is the total length of the input file.
            int len; //This is the number of bytes to be written at a time.
            RijndaelManaged rijn = new RijndaelManaged();

            //DES ds = new DESCryptoServiceProvider();

            decStream = new CryptoStream(fin, rijn.CreateDecryptor(rijnKey, rijnIV), CryptoStreamMode.Read);


            //odkoduj testowy fragment

            byte[] test = new byte[testHeader.Length];
            decStream.Read(test, 0, testHeader.Length);
            string contents = new StreamReader(decStream).ReadToEnd();
            byte[] unicodes = Encoding.Unicode.GetBytes(contents);
            MemoryStream msOutput = new MemoryStream(unicodes);
//here I have to implement player that plays from memory stream.
}
catch
{}
}

现在最好的方法,适用于任何平台。。。就是使用Http直播,然后您可以使用支持HLS的播放器,也可以简单地使用HTML5视频标签。请参阅下面我的更新答案


我已经回答了一个关于视频文件加密和解密的问题,但我可以理解您不想在客户端计算机上保存该文件的物理副本

但无法从memorystream播放视频文件(不确定是否有付费的第三方工具)

因此,有一种方法可以像下面的方法那样进行:

1:将该文件保存在客户端的“temp”文件夹中,例如“temp/myvideos/sample.mkv”

2:使其对属性隐藏()

3:从那里播放视频


4:播放完毕后,请从“临时”文件夹(myvideos)中删除该自定义文件夹中的所有文件。

您仍需要使用DirectShow:)我不知道,如何使用它?我下载了它,还研究了它的形式。但不知道该使用哪个示例,以及如何使用我的解密代码。如上所示。你能指导我吗?为什么提问者在用C#提问时使用Java代码。