Как кодировать изображение в файл mp4 с помощью графического процессора?C#

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

Сообщение Anonymous »

Я пытаюсь конвертировать папку с изображениями в mp4 через FFmpeg AutoGen https://github.com/Ruslan-B/FFmpeg.AutoGen.
Я использую демо-версию FFmpeg.AutoGen.Example
Для меня это хорошо, но для кодирования используется процессор. Это демо-версия FFmpeg.AutoGen:

Код: Выделить всё

private static unsafe void EncodeImagesToH264()
{
var frameFiles = Directory.GetFiles("./frames", "frame.*.jpg").OrderBy(x => x).ToArray();
using var fistFrameImage = ReadFrame(frameFiles.First());

var outputFileName = "frames/out.h264";
var fps = 25;
var sourceSize = new Size(fistFrameImage.Width, fistFrameImage.Height);
var sourcePixelFormat = AVPixelFormat.@AV_PIX_FMT_BGRA;
var destinationSize = sourceSize;
var destinationPixelFormat = AVPixelFormat.AV_PIX_FMT_YUV420P;
using var vfc = new VideoFrameConverter(sourceSize, sourcePixelFormat, destinationSize, destinationPixelFormat);

using var fs = File.Open(outputFileName, FileMode.Create);

using var vse = new H264VideoStreamEncoder(fs, fps, destinationSize);

var frameNumber = 0;

foreach (var frameFile in frameFiles)
{
using var bitmap = ReadFrame(frameFile);
var bitmapData = bitmap.Bytes;
fixed (byte* pBitmapData = bitmapData)
{
var data = new byte_ptr8 { [0] = pBitmapData };
var linesize = new int8 { [0] = bitmapData.Length / sourceSize.Height };
var frame = new AVFrame
{
data = data,
linesize = linesize,
height = sourceSize.Height
};
var convertedFrame = vfc.Convert(frame);
convertedFrame.pts = frameNumber * fps;
vse.Encode(convertedFrame);
}

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

vse.Drain();
}
Я хочу получить демонстрационную версию использования графического процессора для кодирования. Как мне это сделать?

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

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

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

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

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

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

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