建设银行网站登录,wampserver安装wordpress,微商城官网地址,科技成果0 什么是ffmpeg? Libav#xff08;旧称#xff1a;FFmpeg#xff09;是一个自由软件#xff0c;可以运行音频和视频多种格式的录影、转档、流功能[1]#xff0c;包含了libavcodec ─这是一个用于多个专案中音频和视频的解码器库#xff0c;以及 libavformat ——一个音频… 0 什么是ffmpeg? Libav旧称FFmpeg是一个自由软件可以运行音频和视频多种格式的录影、转档、流功能[1]包含了libavcodec ─这是一个用于多个专案中音频和视频的解码器库以及 libavformat ——一个音频与视频格式转换库。 libav的旧称FFmpeg这个单词中的 FF 指的是 Fast Forward[2]。有些新手写信给FFmpeg的项目负责人询问FF是不是代表“Fast Free”或者“Fast Fourier”等意思FFmpeg的项目负责人回信说“Just for the record, the original meaning of FF in FFmpeg is Fast Forward...” http://zh.wikipedia.org/wiki/Libav 一 下载ffmpeg 官方网站 http://ffmpeg.zeranoe.com/ 访问 http://ffmpeg.zeranoe.com/builds/ 下载ffmpeg windows下发布版 FFmpeg git-f514695 32-bit Shared (Latest) 二 在命令行下学会ffmpeg使用 cd 进入ffmpeg解压缩目录下的bin目录 ffmpeg.exe -i D:/source.avi -vcodec copy -y -r 25 -ss 8 -t 971 D:/demo.mp4 D:\clip_info.txt 21 这里-vcodec copy参数一定要加这样裁剪的时候不会改变视频的编码方式裁剪非常快。 ffmpeg主要参数一览 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Main options: -L show license -h show help -? show help -help show help --help show help -version show version -formats show available formats -codecs show available codecs -bsfs show available bit stream filters -protocols show available protocols -filters show available filters -pix_fmts show available pixel formats -sample_fmts show available audio sample formats -loglevel loglevel set libav* logging level -v loglevel set libav* logging level -debug flags set debug flags -report generate a report -max_alloc bytes set maximum size of a single allocated block -f fmt force format -i filename input file name -y overwrite output files -n do not overwrite output files -c codec codec name -codec codec codec name -pre preset preset name -map_metadata outfile[,metadata]:infile[,metadata] set metadata information of outfile from infile -t duration record or transcode duration seconds of audio/video -fs limit_size set the limit file size in bytes -ss time_off set the start time offset -itsoffset time_off set the input ts offset -itsscale scale set the input ts scale -timestamp time set the recording timestamp (now to set the current time) -metadata stringstring add metadata -dframes number set the number of data frames to record -timelimit limit set max runtime in seconds -target type specify target file type (vcd, svcd, dvd, dv, dv50, pal-vcd, ntsc-svcd, ...) -xerror exit on error -frames number set the number of frames to record -tag fourcc/tag force codec tag/fourcc -filter filter_list set stream filterchain -stats print progress report during encoding -attach filename add an attachment to the output file -dump_attachment filename extract an attachment into a file -bsf bitstream_filters A comma-separated list of bitstream filters -dcodec codec force data codec (copy to copy stream) Advanced options: -map [-]input_file_id[:stream_specifier][,sync_file_id[:stream_s set input stream mapping -map_channel file.stream.channel[:syncfile.syncstream] map an audio channel from one stream to another -map_chapters input_file_index set chapters mapping -benchmark add timings for benchmarking -dump dump each input packet -hex when dumping packets, also dump the payload -re read input at native frame rate -loop_input deprecated, use -loop -loop_output deprecated, use -loop -vsync video sync method -async audio sync method -adrift_threshold threshold audio drift threshold -copyts copy timestamps -copytb source copy input stream time base when stream copying -shortest finish encoding within shortest input -dts_delta_threshold threshold timestamp discontinuity delta threshold -copyinkf copy initial non-keyframes -q q use fixed quality scale (VBR) -qscale q use fixed quality scale (VBR) -streamid streamIndex:value set the value of an outfile streamid -muxdelay seconds set the maximum demux-decode delay -muxpreload seconds set the initial demux-decode delay -fpre filename set options from indicated preset file Video options: -vframes number set the number of video frames to record -r rate set frame rate (Hz value, fraction or abbreviation) -s size set frame size (WxH or abbreviation) -aspect aspect set aspect ratio (4:3, 16:9 or 1.3333, 1.7777) -bits_per_raw_sample number set the number of bits per raw sample -croptop size Removed, use the crop filter instead -cropbottom size Removed, use the crop filter instead -cropleft size Removed, use the crop filter instead -cropright size Removed, use the crop filter instead -padtop size Removed, use the pad filter instead -padbottom size Removed, use the pad filter instead -padleft size Removed, use the pad filter instead -padright size Removed, use the pad filter instead -padcolor color Removed, use the pad filter instead -vn disable video -vcodec codec force video codec (copy to copy stream) -sameq use same quantizer as source (implies VBR) -same_quant use same quantizer as source (implies VBR) -pass n select the pass number (1 or 2) -passlogfile prefix select two pass log file name prefix -vf filter list video filters -b bitrate video bitrate (please use -b:v) -dn disable data 三 利用QT4做个简单图形界面工具 这里主要用了QProcess这个类可以调用外部程序。 关键代码 QString program D:\\maxview_video_demo\\ffmpeg\\ffmpeg-git-985e768-win64-static\\bin\\ffmpeg.exe; QString inputPath ui-videopathLineEdit-text(); QFile sourceFile(inputPath); if(!sourceFile.exists()){ QMessageBox::information(this,QString::fromUtf8(提示),QString::fromUtf8(找不到源文件)); return; } QString outputPath QFileInfo(sourceFile).absolutePath() /clip.mp4; QFile destFile(outputPath); if(destFile.exists()){ destFile.remove(); } QString startTime ui-videoStartTimeEdit-time().toString(hh:mm:ss); QString len ui-videoLengthTimeEdit-time().toString(hh:mm:ss); QStringList arguments; arguments -i inputPath -r 25-ss; arguments startTime -t len outputPath; QProcess *clipProcess new QProcess(this); connect(clipProcess,SIGNAL(finished(int)),this,SLOT(clipVideoFinished(int))); clipProcess-start(program, arguments); 当视频截取完成后进程会发生信号finished(int)并被QProcess捕捉到这样可以调用 clipVideoFinished函数来通知程序视频裁剪完成了。