Как декодировать файл MP4 с помощью графического процессора, используя ffmpeg.autogen?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как декодировать файл MP4 с помощью графического процессора, используя ffmpeg.autogen?

Сообщение Anonymous »

Как декодировать файл MP4 с помощью графического процессора?

Я использую демо-версию FFmpeg.AutoGen.
Это хорошо для кода: Private static unsafe void DecodeAllFramesToImages ()
Но для декодирования используется процессор.
Я хочу получить демоверсию с использованием графического процессора для декодирования.
Как я могу это сделать?

Это Демонстрация FFmpeg.AutoGen:

private static unsafe void DecodeAllFramesToImages()
{
// decode all frames from url, please not it might local resorce, e.g. string url = "../../sample_mpeg4.mp4";
var url = "https://rtmp-luzhi.oss-cn-beijing.aliyu ... %96%97.mp4"; // be advised this file holds 1440 frames
using (var vsd = new VideoStreamDecoder(url))
{
Console.WriteLine($"codec name: {vsd.CodecName}");

var info = vsd.GetContextInfo();
info.ToList().ForEach(x => Console.WriteLine($"{x.Key} = {x.Value}"));

var sourceSize = vsd.FrameSize;
var sourcePixelFormat = vsd.PixelFormat;
var destinationSize = sourceSize;
var destinationPixelFormat = AVPixelFormat.AV_PIX_FMT_BGR24;
using (var vfc = new VideoFrameConverter(sourceSize, sourcePixelFormat, destinationSize, destinationPixelFormat))
{
var frameNumber = 0;
while (vsd.TryDecodeNextFrame(out var frame))
{
var convertedFrame = vfc.Convert(frame);

using (var bitmap = new Bitmap(convertedFrame.width, convertedFrame.height, convertedFrame.linesize[0], PixelFormat.Format24bppRgb, (IntPtr) convertedFrame.data[0]))
bitmap.Save($"frame.{frameNumber:D8}.jpg", ImageFormat.Jpeg);

Console.WriteLine($"frame: {frameNumber}");
frameNumber++;
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/577 ... eg-autogen
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»