2016-07-22 9 views
0

私はその後、私はすべての画像からのビデオファイルを作成するには、コマンドプロンプトウィンドウで、ffmpegのコマンドラインを使用しているスクリーンショットごとに10msスクリーンショットをイメージとしてキャプチャし、ffmpegを使用してイメージをビデオファイルに変換するタイミングは?

 int count = 0; 
     private void timer1_Tick(object sender, EventArgs e) 
     { 
      Bitmap bmp = new Bitmap(sc.CaptureScreen()); 
      bmp.Save(@"D:\SavedScreenshots\screenshot" + count + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp); 
      bmp.Dispose(); 
      count ++; 
     } 

を取るタイマーティックイベントがあります。

ffmpeg -framerate 2 -i screenshot%d.bmp -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 
を1920x 1080とビット深度私はビデオFIを再生するときに-framerate 2でffmpegのコマンドラインを作成するときに問題がある32

:それはサイズのハードディスクに

すべてのビットマップファイルは、7.91メガバイト 詳細ですそれは非常に非常に遅いです。 私はフレームレートを10に設定すると速すぎます。 フレームレートを4に設定すると、黄色のエラーが大きくなりすぎます。

しかし、多分問題は私が10msごとにスクリーンショットを撮っているということですか?たぶん私は1000ミリ秒ごとにスクリーンショットを取る必要がありますか?そして、私はffmpegコマンドラインで何を変えるべきですか?

私は通常のビデオファイルの速度のようにしたいです。あまりにも速くなく、あまりにも遅くない。 スクリーンショットでキャプチャしているのはデスクトップ画面です。後でアップロードしてフォーラムのサポートヘルプに表示したいと思っています。

+0

通常のビデオ速度を使用

ffmpeg -i out.mp4 out-small.mp4 

あなたが撮影したファイルのサイズを変更することができ、 youtubeは約24fpsまたは30fpsです。これは、1秒で24または30ビットマップを意味します。タイマーは、1000/24または1000/30ミリ秒でなければなりません。私はffmpegで、1/24または1/30と考える –

答えて

0

FFmpegを使用して直接キャプチャすることができます。

ffmpeg -f gdigrab -framerate 24 -i desktop -preset ultrafast -pix_fmt yuv420p out.mp4 

(Ctrl-Cまたはqを押して停止します)。あなたがC#を使用し続けたい場合は、1000年から1024のミリ秒のタイマー間隔とのよう

ffmpeg -framerate 24 -i screenshot%d.bmp -c:v libx264 -pix_fmt yuv420p out.mp4 
関連する問題