2016-06-16 7 views
0

Я пытаюсь сделать видео из последовательности файлов .jpg, используя обертку Nreco.videoconverter ffmpeg. Я ищу ответ на этот форум и тему, что почти поможет мне этоКонвертер видео Nreco делает видео из последовательности изображений

http://stackoverflow.com/questions/15280199/how-to-make-a-video-file-from-images 

If you already have image files the best way is using special "image2" format (FFMpeg demuxer) and FFMPeg will read files directly for producing video Video can be produced in real-time with live stream conversion supported by VideoConverter. In this case "rawvideo" should be specified as input format and C# application should pass RAW bitmap bytes (as mentioned in the question) as input for live stream converter.

Стараюсь с этим кодом, но я всегда получаю видео с 1 кадра (первый один из массива):

NReco.VideoConverter.FFMpegConverter c = new FFMpegConverter(); 

       ConcatSettings set = new ConcatSettings(); 
       set.VideoFrameRate = 5; 
       set.VideoFrameCount = 10; 
       set.ConcatVideoStream = true; 
       set.ConcatAudioStream = false; 
       set.SetVideoFrameSize(704, 576); 

       string[] _fileNames = new string[25]; 
       _fileNames[0] = "g:\\Storage\\001.jpg"; 
       _fileNames[1] = "g:\\Storage\\002.jpg"; 
       _fileNames[2] = "g:\\Storage\\003.jpg"; 
       _fileNames[3] = "g:\\Storage\\004.jpg"; 
       _fileNames[4] = "g:\\Storage\\005.jpg"; 
       _fileNames[5] = "g:\\Storage\\006.jpg"; 
       _fileNames[6] = "g:\\Storage\\007.jpg"; 
       _fileNames[7] = "g:\\Storage\\008.jpg"; 
       _fileNames[8] = "g:\\Storage\\009.jpg"; 
       _fileNames[9] = "g:\\Storage\\010.jpg"; 

      c.ConcatMedia(_fileNames, "g:\\Storage\\test2.mp4", Format.mp4, set); 

Я также пытаюсь использовать ConvertMedia() вместо ConcatMedia, но с тем же результатом.

Есть ли способ сообщить конвертеру, что это последовательность изображений?

Есть ли другой нарушитель FFMPEG или способ сделать это?

Я нашел AForge класс, который хорошо, но работает только с .NET 3.5

Tnx!

ответ

0

FFMpegConverter.ConcatMedia использует фильтр concat для объединения нескольких видеофайлов и не должен использоваться для кодирования видео с изображений.

Правильный способ использования метода ConvertMedia с FFmpeg демультиплексора изображения:

var videoConv = new FFMpegConverter(); 
videoConv.ConvertMedia( 
    @"g:\Storage\%03d.jpg", null, 
    "test.mp4", null, 
    new ConvertSettings() { 
     CustomInputArgs = " -framerate 5 ", 

     // specify any additional ffmpeg parameters for output here 
     CustomOutputArgs = " -profile:v high " 
}); 
+0

Можете ли вы сказать мне, как я могу установить длительность для этого конвертировать видео в последние несколько вторых, чтобы я мог видеть изображение. В настоящее время он даже не второй. трудно увидеть изображение в видео. – Kanishka

+0

Мне кажется, что это не работает, действительно ли это ответ? –

+0

@MarkRedman да, это работает; возможно, ваши файлы изображений не соответствуют шаблону% 03d.jpg? .. вы можете попытаться выполнить преобразование из командной строки сначала (с помощью ffmpeg.exe), чтобы увидеть, что происходит. –

 Смежные вопросы

  • Нет связанных вопросов^_^