1

Nreco.videoconverter ffmpeg ラッパーを使用して、一連の .jpg ファイルからビデオを作成しようとしています。私はこのフォーラムで答えを探し、ほとんど私を助けるトピックは

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

画像ファイルが既にある場合は、特別な「image2」形式 (FFMpeg demuxer) を使用するのが最善の方法です。FFMpeg は、ビデオを作成するためにファイルを直接読み取ります。ビデオは、VideoConverter でサポートされているライブ ストリーム変換を使用してリアルタイムで作成できます。この場合、「rawvideo」を入力形式として指定する必要があり、C# アプリケーションはライブ ストリーム コンバーターの入力として (質問に記載されているように) RAW ビットマップ バイトを渡す必要があります。

このコードを試してみましたが、常に 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);

また、 ConcatMedia の代わりに ConvertMedia() メソッドを使用しようとしましたが、結果は同じです。

これが画像のシーケンスであることをコンバータに伝える方法はありますか?

これを行う他のFFMPEGラッパーまたは方法はありますか?

良いが.NET 3.5でしか動作しないAForgeクラスを見つけました

Tnx!

4

1 に答える 1

1

FFMpegConverter.ConcatMedia は、複数のビデオ ファイルをマージするために concat フィルターを使用します。画像からビデオをエンコードするために使用しないでください。

ffmpeg 画像デマルチプレクサで ConvertMedia メソッドを使用する正しい方法:

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 " 
});
于 2016-06-25T09:57:08.453 に答える