C#将视频文件添加到流

时间:2017-05-05 07:00:08

标签: c#

我有一个函数可以像这样添加Image文件流:

//sourceImage is a url for an image
public Stream AddImageToStream(string sourceImage)
{
    try
    {
        using (WebClient webClient = new WebClient())
        {
            byte[] data = webClient.DownloadData(sourceImage);
            using (MemoryStream mem = new MemoryStream(data))
            {
                using (var yourImage = Image.FromStream(mem))
                {
                    Image img = yourImage;
                    var ms = img.ToStream(ImageFormat.Png);
                    img.Dispose();
                    return ms;
                }
            }
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

我无法在C#中找到Video课程。

如何为视频文件实现此功能?

1 个答案:

答案 0 :(得分:0)

基本上您已经知道如何将下载的内容转换为MemoryStream

public Stream DownloadToStream(string url)
{
    using (var webClient = new System.Net.WebClient())
    {
        byte[] data = webClient.DownloadData(url);
        var ms = new System.IO.MemoryStream(data);
        return ms;
    }
}

但这需要视频或其他适合内存的内容,没有进度处理,也没有异步。此外,当您使用它完成操作时,您应该Dispose()返回的流。

基本的.NET框架中有没有 Video类,因为视频是一个复杂的主题。如果你想处理它,你应该研究一些框架/库,并且必须要学习异步处理和流。

更新:如果您可以使用框架的当前版本,则可能对使用HttpClient.GetStreamAsync感兴趣。这不会消耗你所有的记忆。如果你想编辑视频数据,你还需要一个专门用于视频编辑的框架。