6

最近、インターネットで MP4 ビデオからビットマップを抽出するための優れた C# ライブラリを検索したところ、MP4 ではなく、このコードに似たものを見つけました。

        VideoStream stream = aviManager.GetVideoStream(@"C:\Users\User\Desktop\video.mp4");
        //the video.mp4 is usually .avi or .mpeg
        for (int n = 0; n < stream.CountFrames; n++)
        {
            Bitmap bmp = new Bitmap(stream.GetBitmap(Position));
            bmp.Save(@"C:\Users\Nehoray\Desktop\Something.png");
            bmp.Dispose;
        }

MP4専用の、このような簡単なコードを含むライブラリを誰かに教えてもらえますか? :)

4

3 に答える 3

3

同様のタスクに Expression Encoder SDK を使用しました。彼らはMP4がサポートされていると宣言しています。AudioVideoFile.GetThumbnailメソッドを見てください。

于 2012-10-08T20:47:16.083 に答える
1

aviの場合、私は次のようなものを書いていました:

string filename = "file.avi";
string storagepath = @"temp\";
static int counter = 0;
MediaDetClass memde;

private void button1_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        // Create the subfolder
        System.IO.Directory.CreateDirectory("temp");

    // Some properities
        counter = 0;
        memde = new MediaDetClass();
        Image img;
        memde.Filename = openFileDialog1.FileName;
        memde.CurrentStream = 0;
        int len = (int)memde.StreamLength;
        float percent = 0.002f;//how far do u want for a single step

        for (float i = 0.0f; i < len; i = i + (float)(percent * len))
        {

            counter++;
            string fbitname = storagepath + counter.ToString();
            memde.WriteBitmapBits(i, 850, 480, fbitname + ".bmp");
            //img = Image.FromFile(fbitname + ".bmp");
            //img.Save(fbitname + ".bmp", ImageFormat.Bmp);
            //img.Dispose();
            //System.IO.File.Delete(i + fbitname + ".bmp");
        }
}

使用されたライブラリは:Interop.DexterLib.dllでした。C# リソースで見つけることができるかどうかはわかりません。必要に応じてリンクを共有できます。


GitHub Repoは RAW ファイルをダウンロードするだけです (C# フォルダーにあります)。

于 2012-10-07T20:35:22.697 に答える
0

この投稿に出くわした他の人は、この回答をチェックしてください: C# でビデオ ファイルのサムネイル画像を取得する

投稿の 1 つは、 NReco.VideoConverterという NuGet パッケージについて言及しています。これにより、MP4 ファイルから非常に簡単にサムネイルを作成できます。

var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
ffMpeg.GetVideoThumbnail(pathToVideoFile, pathToNewThumbnail, locationInSeconds);
于 2015-03-23T15:17:42.483 に答える