dimanche 28 juin 2015

How can i convert and compress in real time batch of images to mp4 video file?

In my directory on the hard disk i have many images: screenshot000001.bmp , screenshot000002.bmp....screenshot001200.bmp

I want to do two things:

  1. For testing using the cmd(Command Prompt) and to compress and convert the images to mp4 video file.

  2. In my program in real time while my program take the screenshots and save them to the hard disk to compress them and build the mp4 video file in real time.

For the first part i tried to type in cmd :

ffmpeg -f image2 -i screenshot%d.bmp -vcodec libx264 -b 800k video.avi

But what i got is two errors:

[image2 @ 0000000004766380] Could find no file with path 'screenshot%d.bmp' and index in the range 0-4 screenshot%d.bmp: No such file or directory

I copied the ffmpeg.exe to the directory where the images are in. E:\screenshots

For the second part this how i'm taking the screenshots in real time:

A button click event that start a timer:

private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
        }

Then in the tick event:

    ScreenShot shot = new ScreenShot();
    public static int counter = 0;
    private void timer1_Tick(object sender, EventArgs e)
    {
        counter++;
        shot.GetScreenShot(@"e:\screenshots\", "screenshot");
        if (counter == 1200)
        {
            timer1.Stop();
        }
    }

This line shot.GetScreenShot(@"e:\screenshots\", "screenshot"); save the screenshots to the hard disk. Here after each screenshot save i want to compress and build the mp4 video file in real time.

I tried this and got errors:

e:\screenshots>ffmpeg -f image2 -i screensh
deo.avi

Error message:

ffmpeg version N-73165-gf1e1730 Copyright (
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-vers
isynth --enable-bzlib --enable-fontconfig -
le-iconv --enable-libass --enable-libbluray
enable-libdcadec --enable-libfreetype --ena
ibilbc --enable-libmodplug --enable-libmp3l
le-libopencore-amrwb --enable-libopenjpeg -
able-libschroedinger --enable-libsoxr --ena
ble-libtwolame --enable-libvidstab --enable
 --enable-libvorbis --enable-libvpx --enabl
e-libx264 --enable-libx265 --enable-libxavs
ble-decklink --enable-zlib
  libavutil      54. 27.100 / 54. 27.100
  libavcodec     56. 45.100 / 56. 45.100
  libavformat    56. 38.102 / 56. 38.102
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 18.100 /  5. 18.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.100 /  1.  2.100
  libpostproc    53.  3.100 / 53.  3.100
[bmp @ 0000000002f77ce0] bad magic number
    Last message repeated 3 times
[image2 @ 0000000002f76380] decoding for st
[image2 @ 0000000002f76380] Could not find
 bmp, none): unspecified size
Consider increasing the value for the 'anal
screenshot%06d.bmp: could not find codec pa
Input #0, image2, from 'screenshot%06d.bmp'
  Duration: 00:00:02.88, start: 0.000000, b
    Stream #0:0: Video: bmp, none, 25 fps,
Please use -b:a or -b:v, -b is ambiguous
Codec AVOption b (set bitrate (in bits/s))
vi) has not been used for any stream. The m
e (e.g. a video option with no video stream
some encoder which was not actually used fo
Output #0, avi, to 'video.avi':
Output file #0 does not contain any stream

Aucun commentaire:

Enregistrer un commentaire