Как разбить файл wmv на байты, реализованные на языке C#?

У меня есть файл WMV, размер которого составляет 300 байт. Я хочу разделить его на несколько байтов (пример: (150 байтов каждый) или (3 100 байтов)). Как мне реализовать это на языке C#?

3 ответа

Это действительно зависит от того, хотите ли вы, чтобы файлы работали или нет. Разделить их на куски очень просто: считайте их в байтовый массив, используйте цикл for, который копирует часть массива в файл размером CHUNK, не забывая копировать последние байты файла. Разделение их на рабочие файлы отличается.

Реальный ответ таков: просто используйте потоковый сервер и забудьте о написании потокового протокола. Это безумие. Чтобы разбить файл на байтовые сегменты, вы можете использовать что-то вроде кода ниже. Не проверено, но должно быть выполнено примерно на 95%.

Вы должны взглянуть на протоконтроль, если вы еще этого не сделали. http://msdn.microsoft.com/en-us/library/cc251059(v=PROT.10).aspx И если у вас есть, и вы задали этот вопрос, у вас нет шансов на кубики льда в аду заставить его работать,

        int chunkSize = 300;
        var file = File.Open("c:\file.wmv", FileMode.Open);
        var numberOfChunks = (file.Length/chunkSize)+1;
        byte[][] fileBytes = new byte[numberOfChunks][];
        for (int i = 0; i < numberOfChunks; i++)
        {
            int bytesToRead = chunkSize;
            if (i == numberOfChunks + 1)
            {
                bytesToRead = (int)(file.Length - (i * chunkSize));
            }
            fileBytes[i] = new byte[bytesToRead];
            file.Read(fileBytes[i], i * chunkSize, bytesToRead);
        }

Я попытался бы просто передать это без явного разделения (стек tcp разделит его, как ему нравится ^^). Если у вас есть хороший кодек, он все равно будет его воспроизводить. (Vlc всегда может воспроизводить видео во время загрузки)

Другие вопросы по тегам