C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.91318 の関連記事表示

<< 0 >>
■91318  動画ファイルから画像を取得する方法
□投稿者/ 虎夫 -(2019/06/16(Sun) 11:00:06)

    分類:[.NET 全般] 

    動画ファイル(mkv or mp4)をフレーム毎に画像データとして取得し
    その画像データを更にバイト配列に変換したいと考えています。

    FFmpegという外部ソフトを使って
    動画ファイルをJPEG or PNGファイルとして出力後、
    それぞれの画像ファイルを取り込んでバイト配列として取得。

    という方法なら、できるのですが、
    いったん、画像ファイルにする必要があるため、
    時間がかかる上、大きなファイルを生じてしまいます。

    VB.NETの中で動画ファイルから直接、画像データを取得したいのですが
    どうすればそのようなことが可能でしょうか?

親記事 /過去ログ158より / 関連記事表示
削除チェック/

■91319  Re[1]: 動画ファイルから画像を取得する方法
□投稿者/ キングダム -(2019/06/16(Sun) 13:18:43)
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91405  Re[2]: 動画ファイルから画像を取得する方法
□投稿者/ 虎夫 -(2019/06/21(Fri) 14:36:54)
    https://www.nrecosite.com/doc/NReco.VideoConverter/

    ここにヘルプのようなものがあるのですが、
    使い方がいまいち分かりません。

    例えば、
    動画から画像をイメージデータとして取得する方法だけでも
    お教えいただけないでしょうか?
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91411  Re[3]: 動画ファイルから画像を取得する方法
□投稿者/ キングダム -(2019/06/21(Fri) 22:13:33)
    No91405 (虎夫 さん) に返信
    
    こんな感じで
    
    Sub Main()
        Dim ffMpeg = New NReco.VideoConverter.FFMpegConverter()
        Dim stream = New System.IO.MemoryStream()
    
        ffMpeg.GetVideoThumbnail("test.mp4", stream, 4.5F)
    
        Dim bytes = stream.ToArray()
        System.IO.File.WriteAllBytes("test.jpg", bytes)
    End Sub
    
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91424  Re[4]: 動画ファイルから画像を取得する方法
□投稿者/ 虎夫 -(2019/06/24(Mon) 20:07:44)
    ありがとうございます。

    この方法だとある指定した一つのフレームのみを取得することになりますが、

    指定した時間の区間の全フレームを取得したい場合にはどのようにしたら良いですか?

    fpsの値から1フレーム毎の秒数を割り出して
    Forループで提示してくださったコマンドを回すしかないでしょうか?
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91510  Re[5]: 動画ファイルから画像を取得する方法
□投稿者/ 虎夫 -(2019/07/02(Tue) 17:53:04)
    試してみたのですが、
    画像の圧縮率が高すぎて画像が劣化しすぎなのですが。
    無圧縮で取得したいのですが、
    これは可能でしょうか?

    見たところ、圧縮形式や画像形式を指定する引数が見当たらないので
    対応していないということでしょうか?

    もし、他に良い方法があれば教えていただけないでしょうか?
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91512  Re[6]: 動画ファイルから画像を取得する方法
□投稿者/ Hongliang -(2019/07/02(Tue) 18:25:45)
    わざわざデコード側で再圧縮するとも思えないので、動画ソースの時点で圧縮されているのではないかと思うのですが……私はそのライブラリは使っていないので断言はできませんが。
    とりあえず、クラス名などからしてffmpegを内部で使用しているようですので、確認作業として以下を提案します。

    ffmpegをダウンロードしてきて、コマンドプロンプトで以下を実行し、作成されたtest.bmpを確認する。
    ffmpeg.exe -i "動画ファイルのパス" -ss 4.5 -vframes 1 -c:v bmp test.bmp

    // 私ならどうだろう、とりあえずOpenCvSharpかなぁ。
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91514  Re[7]: 動画ファイルから画像を取得する方法
□投稿者/ 虎夫 -(2019/07/02(Tue) 19:00:52)
    No91512 (Hongliang さん) に返信

    普段、ffmpegを使っていますが、
    こちらは、bmp png jpegから選択することができます。

    しかし、ffMpeg.GetVideoThumbnailのデフォルトでjpeg圧縮されているようです。

    OpenCvSharpというのは一度試してみます。
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91568  Re[8]: 動画ファイルから画像を取得する方法
□投稿者/ 虎夫 -(2019/07/07(Sun) 18:15:28)
    OpenCvSharpを使ってみましたが、
    普通に使えることが分かりました。
    単に動画をbmpファイルの連番出力するだけでも
    ffmpeg.exeよりも二倍近く速いです。

    しかし、packagesフォルダーの中に入っているDLLファイルサイズが異様に大きく
    100 MB近くになってしまいます。
    このばかでかいファイルってどうにかならないのでしょうか?
    しかもslnのプロジェクトファイルごとにこれが生成されるので、
    プロジェクトがたくさんあるとそれだけファイルサイズも大きくなってしまいます。

    普段、dropboxで自宅と職場の間でデータをやりとりしているので
    できるだけファイルサイズを下げたいのですが・・

    packagesだけ、別のフォルダーに移動させることってできないのでしょうか?

    あと、ffmpegのDLLファイルが入っていることから
    動画取得部分はffmpegを使っているはずなのに
    ffmpeg.exeよりも二倍近く速くなるのはなぜでしょうか?
記事No.91318 のレス /過去ログ158より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -