Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write frames to a video file?

I am currently writing an application that read frames from camera, modify them, and save them into a video file. I'm planing to do it with ffmpeg. There's rarely a documentation about ffmpeg. I can't find a way. Does any know how to do it?

I need it to be done on unix, and in C or C++. Does any can provide some instructions?

Thanks.

EDIT:

Sorry, I haven't write clearly. I want some developer APIs to write frames to a video file. I open up camera stream, I get every single frame, then I save them into a video file with those APIs available in ffmpeg's public apis. So using command line tool actually doesn't help me. And I've seen output_example.c under the ffmpeg src folder. It's pretty great that I may copy some parts of the code directly without change. And I am still looking for a easier way.

Also, I'm thinking of porting my app to iPhone, as far as I know, only ffmpeg has been ported on iPhone. GStreamer is based on glib, and it's all GNU stuff. I'm not sure if I can get it work on iPhone. So ffmpeg is still the best choice for now.

Any comments is appreciated.

like image 624
Mike Chen Avatar asked Aug 19 '09 11:08

Mike Chen


1 Answers

This might help get you started - the documentation is available, but newer features tend to be documented in ffmpeg's man pages.

The frames need to be numbered sequentially.

ffmpeg -f image2 -framerate 25 -i frame_%d.jpg -c:v libx264 -crf 22 video.mp4
  • -f defines the format
  • -framerate defines the frame rate
  • -i defines the input file/s ... %d specifies numbered files .. add 0's to specify padding, e.g. %05d for zero-padded five-digit numbers.
  • -vcodec selects the video codec
  • -crf specifies a rate control method, used to define how the x264 stream is encoded
  • video.mp4 is the output file

For more info, see the Slideshow guide.

like image 61
codeinthehole Avatar answered Oct 07 '22 02:10

codeinthehole