本站首页    管理页面    写新日志    退出


«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7624500
建立时间:2006年5月29日




[视频处理]FFMPEG
软件技术

lhwork 发表于 2007/2/5 12:24:11

This tutorial is about transcoding video fom one codec into another using FFMPEG. I got deeper into FFMPEG when I wanted to transcode into FLV (Flash Video) and it works very well. I developed the Riva FLV Encoder, a GUI for FFMPEG. Update 26.10.2006: This tutorial is a little outdated as there were many changes in FFMPEG like the switch from CVS to Subversion and the workflow to compile FFMPEG under Windows has become more difficult. For the new tweaks check this tutorial. Download MinGW " MSYS current releases (Window Exe Binaries MSYS-1.0.10.exe & MinGW-3.1.0-1.exe) Install MinGW Install MSYS HINT: During the Postinstall be sure to set the right path to MinGW with a "/" instead of a Windows-"". If you did it wrong anyway re-install MSYS to the same directory and do the postinstall right (I missed it a few times) Download and compile Lame Extract Lame to your MSYS home-directory Open MSYS and change to your lame-directory (cd ../lame-XXX) Enter the following commands: CODE: ./configure //(takes a few minutes) make //(lame is being comiled; takes a few minutes, too) make install After installing you will recognize that there are new directories and files in MSYS/local which we will use while compiling ffmpeg with mp3-support Download Subversion Client like Tortoise SVN (http://http://tortoisesvn.tigris.org/) and install it Check out the sourcecode from svn://svn.mplayerhq.hu/ffmpeg Compile FFMPEG Change the directory in MSYS to your ffmpeg-directory (cd ../ffmpeg) Enter the command: CODE: ./configure --enable-memalign-hack --enable-mingw32 --enable-mp3lame --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib HINT: you can paste into MSYS by pressing your center mouse-button "--enabled-memalign-hack" is a Windows hack. Without this option ffmpeg always crashs with the message "removing common factors from framerate" when encoding AVIs. "--enable-mingw32". I see no difference without it but we compile with MinGW and it would not do a harm when ffmpeg knows this "--enable-mp3lame": Enable transcoding audio with the open-source mp3-lame-codec "--extra-cflags=-I/local/include --extra-ldflags=-L/local/lib": The cflags- and ldflags-parameter sets the right path to your lame-installation which you did in step 3.d. Enter command: make (ffmpeg is being compiled; takes a few minutes) With "make install" you could now copy the ffmpeg.exe to c:Program Filesffmpeg. But there is no need to. Use FFMPEG Copy your compiled ffmpeg.exe from your MSYS directory to the directory where you like to transcode with ffmpeg Open the Dos-Shell and change to the directory where you copied the ffmpeg.exe Copy a test.mpg into your directory and enter the following command: CODE: ffmpeg -i test.mpg -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 test.flv Your first FLV should be encoded now Render Images from a Video Enter command: CODE: ffmpeg -an -y -t 0:0:0.001 -i test.flv -f image2 test%d.jpg HINT: With -t you set the length of images to be extracted. Above we entered 1 millisecond the extract one image. If you miss this parameter all images of the video will be extracted ZLib Support (e.g. for TSCC and Quicktime codecs). This should be compiled into FFMPEG. It is not an explicit compile in the configure statement. Do the following steps and after configure you should see that zlib is "on".Download and compile ZLibExtract the files to your mysys directoryChange the directory in MSYS to that directoryEnter command ./confugure, make and make install.AC3 SupportAdd "--enable-a52 --enable-gpl" to your configure command 3GP SupportIf you want to enable 3GP support you have to add the AMR audio codec. Download the TS26.104REL-5 V5.1.0 26104-5??.zip here. Extract the codec into libavcodec/amr_float and add "--enable-amr_nb" to your configure command XVID Support (thanks to garvin.thornten at datel.co.uk)Download and install the codec from www.xlib.org (see xvidcore-xxxx/doc/install). Add "--enable-xvid --enable-gpl" to your configure command. When compiling with xvid codec in MinGW or cygwin you will get a "mkstemp" error when compiling "xvidff.c". To fix this edit "libavcodec/xvidff.c" and add the following after the #includes. This will probably be fixed in a future ffmpeg release: ´ C: /* Added for windows compile ----------------- */ #include   int xvid_ff_2pass(void *ref, int opt, void *p1, void *p2); void xvid_correct_framerate(AVCodecContext *avctx);   int mkstemp(char* template) { char temppath[512]; if(GetTempPath(512,temppath)!=0) { if(GetTempFileName(temppath,"fil",0,template)!=0) { FILE *pFile; pFile=fopen(template,"w+"); if(pFile!=NULL) return (int)pFile; } } return -1; } /* ------------------------------------------- */   Link about qscaleremoved "-f singlejpeg" as its identical to "-f mjpeg"


阅读全文(3547) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144791764 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号