mencoder 和ffmpeg常用命令

mencoder 和ffmpeg常用命令
先从Mencoder这个开始,将所有格式转AVI,
RMVB转AVI
mencoder 1.rmvb -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o
rmvb.avi
RM转AVI
mencoder 1.rm -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o
rm.avi
MPEG转AVI
mencoder mp4.mpeg -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of
avi -o mp4.avi
MOV转AVI
mencoder qtime.mov -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of
avi -o qtime.avi
WMV转AVI 包括WMV7到WMV9,只实验到WMV9
mencoder m7.wmv -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi
-o m7.avi
RV转AVI
mencoder 1.rv -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o
rv.avi
等等……格式,参数不变,改文件名就好了。

这里参数是什么意思,我目前还不懂,学习中,你可
以在网上找找,找到告诉我啊,谢谢。

接下来是FFMPEG上场。

AVI转FLV
ffmpeg -i test.avi -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 test.flv
抓图JPG。

ffmpeg -i 2.wmv -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg
3GP转FLV
mencoder -vf scale=320:240 -ffourcc FLV1 -of lavf -lavfopts
i_certify_that_my_video_stream_does_not_use_b_frames -ovc lavc -lavcopts vcodec=flv:vbitrate=200 -srate 22050 -oac lavc -lavcopts acodec=mp3:abitrate=56 ok\1.3gp -o ok\3gp.flv
MOV转FLV
mencoder -vf scale=320:240 -ffourcc FLV1 -of lavf -lavfopts
i_certify_that_my_video_stream_does_not_use_b_frames -ovc lavc -lavcopts vcodec=flv:vbitrate=200 -srate 22050 -oac lavc -lavcopts acodec=mp3:abitrate=56 ok\qtime.mov -o ok\mov.flv
RMVB转FLV
mencoder -vf scale=320:240 -ffourcc FLV1 -of lavf -lavfopts
i_certify_that_my_video_stream_does_not_use_b_frames -ovc lavc -lavcopts vcodec=flv:vbitrate=200 -srate 22050 -oac lavc -lavcopts acodec=mp3:abitrate=56 ok\1.rmvb -o ok\rmvb.flv
WMV转FLV
mencoder -vf scale=320:240 -ffourcc FLV1 -of lavf -lavfopts
i_certify_that_my_video_stream_does_not_use_b_frames -ovc lavc -lavcopts vcodec=flv:vbitrate=200 -srate 22050 -oac lavc -lavcopts acodec=mp3:abitrate=56 ok\m9.wmv -o ok\m9.flv
等等等…………
以上的参数通用,只要在输入的ok\m9.wmv换成你自己相应的格式就好,绝对可以,这次测试完全OK,效果点这里,给大家看看,我近期的成果,已实现的。

裁图方面,跟以前一样的,我再贴一份。

ffmpeg -i ok\3gp.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 3gp.jpg
ffmpeg -i ok\mov.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 mov.jpg
ffmpeg -i ok\mpeg.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 mpeg.jpg
ffmpeg -i ok\mp1.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 mp1.jpg
ffmpeg -i ok\mp2.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 mp2.jpg
ffmpeg -i ok\rm.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 rm.jpg
ffmpeg -i ok\rmvb.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 rmvb.jpg
ffmpeg -i ok\rv.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 rv.jpg
ffmpeg -i ok\mp4.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 mp4.jpg
ffmpeg -i ok\avi.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 avi.jpg
ffmpeg -i ok\m7.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 m7.jpg
ffmpeg -i ok\m8.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 m8.jpg
ffmpeg -i ok\m9.flv -y -f image2 -ss 8 -t 0.001 -s 320x240 m9.jpg
以上转完FLV,有个缺陷,就是FLV播放时不能拖放,要用下面的一个软件来修复。

在服务器上自动转,用命令行的。

用这个,
flvmdigui.exe 要有用户界面的,手动修复的,用这个
flvmdi.exe 使用方法:
命令提示符下输入>flvmdi inputFile [outputFile][/s] [/x] [/e] [/k] 给个例子,后面的参数不加也可以修复,比如。

flvmdi m7.flv
这样就行了。

修复OK。

合集下载

ffmpeg命令用法

ffmpeg命令用法

ffmpeg命令用法FFmpeg是一款开源的音视频处理工具,具有丰富的功能和选项。

以下是FFmpeg命令用法的简要说明:1.格式指定:使用“-f”选项指定输出文件的格式。

例如,如果要输出MP4格式的文件,可以使用“-f mp4”选项。

2.输入文件指定:使用“-i”选项指定输入文件。

例如,如果要处理名为“input.mp4”的文件,可以使用“-i input.mp4”选项。

3.滤镜应用:使用“-vf”选项来应用视频滤镜效果。

例如,要应用“反色”效果,可以使用“-vf 'negate=1'”选项。

4.音频处理:使用“-acodec”选项来指定音频编码器。

例如,要使用AAC音频编码器,可以使用“-acodec aac”选项。

5.视频处理:使用“-vcodec”选项来指定视频编码器。

例如,要使用H.264视频编码器,可以使用“-vcodec h264”选项。

6.分辨率调整:使用“-s”选项来指定输出文件的分辨率。

例如,要将输出文件调整为1280x720分辨率,可以使用“-s 1280x720”选项。

7.帧率设置:使用“-r”选项来指定输出文件的帧率。

例如,要设置输出文件的帧率为30fps,可以使用“-r 30”选项。

8.比特率设置:使用“-b:v”选项来指定视频的比特率。

例如,要设置视频的比特率为1000kbps,可以使用“-b:v 1000k”选项。

9.采样率设置:使用“-ar”选项来指定音频的采样率。

例如,要设置音频的采样率为44100Hz,可以使用“-ar 44100”选项。

10.输出文件指定:使用“-o”选项来指定输出文件的路径和名称。

例如,要将输出文件保存为“output.mp4”,可以使用“-o output.mp4”选项。

这只是FFmpeg命令用法的简要说明,实际上FFmpeg具有更多的选项和功能,可以灵活地应用于各种音视频处理场景。

具体的使用方法可以参考FFmpeg的官方文档或相关教程。

ffmpeg 前端用法

ffmpeg 前端用法

ffmpeg 前端用法ffmpeg是一款广泛使用的多媒体处理工具,它提供了丰富的功能和灵活的参数设置,可以用于音视频编码、格式转换、剪辑等各种应用场景。

本文将介绍ffmpeg的前端用法,包括基本命令和常用选项的使用。

一、安装ffmpeg在开始使用ffmpeg前,首先需要将其安装到计算机上。

ffmpeg支持多个平台,可以通过官方网站或其他渠道下载对应平台的安装包进行安装。

安装完成后,可以在命令行界面输入ffmpeg命令,检查是否安装成功。

二、基本命令用法1. 查看ffmpeg版本信息要查看ffmpeg的版本信息,可以使用以下命令:```ffmpeg -version```运行该命令后,会输出ffmpeg的版本号、编译信息等详细信息。

2. 转码视频文件ffmpeg可以将一个视频文件转换成不同的编码格式。

要转码视频文件,可以使用以下命令:```ffmpeg -i input.mp4 output.mp4```其中,input.mp4是输入文件的路径,output.mp4是输出文件的路径。

通过这个命令,ffmpeg会将input.mp4文件转码为output.mp4文件。

3. 转码音频文件类似于视频文件的转码,ffmpeg也可以将音频文件转换成不同的编码格式。

要转码音频文件,可以使用以下命令:```ffmpeg -i input.mp3 output.mp3```其中,input.mp3是输入文件的路径,output.mp3是输出文件的路径。

这个命令会把input.mp3文件转码为output.mp3文件。

4. 剪辑视频文件ffmpeg还可以对视频文件进行剪辑,即提取其中的一段作为输出。

要剪辑视频文件,可以使用以下命令:```ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 output.mp4```其中,input.mp4是输入文件的路径,output.mp4是输出文件的路径,ss选项指定了起始时间,t选项指定了持续时间。

FFMPEG常用命令-格式转换-持续更新中

FFMPEG常用命令-格式转换-持续更新中

FFMPEG常⽤命令-格式转换-持续更新中---恢复内容开始---ffmpeg是⼀个强⼤的⼯具,在⼯作中各种格式转换,编码,提取视频中的帧需要⽤到,记录下⼯作中常⽤的⼀些ffmpeg命令,持续更新中...将输⼊的infile视频⽂件通过avc编码成h264的视频流ffmpeg -i infile.mp4 -an -vcodec libx264 -crf 23 outfile.h264-i input file -an disable audio -vcodec 指定编码类型 -crf 采⽤cf的编码⽅式并设定level为23(CRF和QP的区别详见)将输⼊的handshake视频⽂件转码成dest1视频⽂件ffmpeg -i handshake.avi -c:v libx264 -preset slow -qp 37 -c:a copy dest1.mp4-i input file -c:v 和-codec:v以及-vcodec是⼀个意思,设置video的codec⽅式-preset 设置⼀些编码参数,有很多levelultrafastsuperfastveryfastfasterfastmedium – default presetslowslowerveryslowplacebo(⼀般不⽤)可以省略,默认是"medium",越慢质量越⾼-qp 设置固定的量化参数 -c:a 等同于-acodec和-codec:a 设置audio的codec⽅式是copy将⼀个⽂件夹的所有视频每隔⼀定帧数提取出图⽚for %%i in (*.mov) do (ffmpeg -i %%i -vf "select=not(mod(n\,50))" -vsync vfr "%%~ni_%%03d.bmp")for %%i in (*.mov) 遍历⽂件夹中所有mov为后缀的⽂件-i input video -vf 等同于-filter:v 具体信息参见 select选择哪些输⼊帧会输出,这边选择的是所有整除50的需要输出第0,50,100... -vsync 设置视频的同步⽅式这⾥的vfr是指传timestamp,如果两帧相同的timestamp需要丢掉最后"%%~ni_%%03d.bmp"是指输出的bmp的名字是输⼊的video的名字后⾯加上001 002 003等从⼀个input raw 视频中抽取出每⼀帧ffmpeg -f rawvideo -framerate 25 -s 1280x720 -pixel_format yuv420p -i in.yuv -c copy -f segment -segment_time 0.01 frames%d.yuv-f 指定输⼊的format为rawvideo -framerate设置帧率 -s 设置输⼊视频的分辨率 -pixel_format设置输⼊视频的格式 -i 输⼊的raw视频 -c 设置输⼊到输出的codec⽅式,这⾥为copy,不需要编解码 -f 指定输出格式,把输⼊的video分成好多个⼩段,只要后⾯设置的segment_time(0.01)⽐⼀帧的时间短(这⾥是1/25=0.04),就会把⼀帧分成⼀段,然后存⼊到yuv中---恢复内容结束---ffmpeg是⼀个强⼤的⼯具,在⼯作者各种格式转换,编码,提取视频中的帧需要⽤到,记录下⼯作中常⽤的⼀些ffmpeg命令,持续更新中...将输⼊的infile视频⽂件通过avc编码成h264的视频流ffmpeg -i infile.mp4 -an -vcodec libx264 -crf 23 outfile.h264-i input file -an disable audio -vcodec 指定编码类型 -crf 采⽤cf的编码⽅式并设定level为23(CRF和QP的区别详见)将输⼊的handshake视频⽂件转码成dest1视频⽂件ffmpeg -i handshake.avi -c:v libx264 -preset slow -qp 37 -c:a copy dest1.mp4-i input file -c:v 和-codec:v以及-vcodec是⼀个意思,设置video的codec⽅式-preset 设置⼀些编码参数,有很多levelultrafastsuperfastveryfastfasterfastmedium – default presetslowslowerveryslowplacebo(⼀般不⽤)可以省略,默认是"medium",越慢质量越⾼-qp 设置固定的量化参数 -c:a 等同于-acodec和-codec:a 设置audio的codec⽅式是copy将⼀个⽂件夹的所有视频每隔⼀定帧数提取出图⽚for %%i in (*.mov) do (ffmpeg -i %%i -vf "select=not(mod(n\,50))" -vsync vfr "%%~ni_%%03d.bmp")for %%i in (*.mov) 遍历⽂件夹中所有mov为后缀的⽂件-i input video -vf 等同于-filter:v 具体信息参见 select选择哪些输⼊帧会输出,这边选择的是所有整除50的需要输出第0,50,100... -vsync 设置视频的同步⽅式这⾥的vfr是指传timestamp,如果两帧相同的timestamp需要丢掉最后"%%~ni_%%03d.bmp"是指输出的bmp的名字是输⼊的video的名字后⾯加上001 002 003等从⼀个input raw 视频中抽取出每⼀帧ffmpeg -f rawvideo -framerate 25 -s 1280x720 -pixel_format yuv420p -i in.yuv -c copy -f segment -segment_time 0.01 frames%d.yuv-f 指定输⼊的format为rawvideo -framerate设置帧率 -s 设置输⼊视频的分辨率 -pixel_format设置输⼊视频的格式 -i 输⼊的raw视频 -c 设置输⼊到输出的codec⽅式,这⾥为copy,不需要编解码 -f 指定输出格式,把输⼊的video分成好多个⼩段,只要后⾯设置的segment_time(0.01)⽐⼀帧的时间短(这⾥是1/25=0.04),就会把⼀帧分成⼀段,然后存⼊到yuv中利⽤ffmpeg计算ssim/psnrffmpeg -s 1920x1080 -i F1.yuv -s 1920x1080 -i F2.yuv -lavfi"ssim="stats_file=stats_ssim.log";[0:v][1:v]"psnr="stats_psnr.log"-f null -F1.yuv为需要计算ssim的视频 F2.yuv为参考视频 -s设置分辨率 -i设置input视频ffmpeg-filters.html-lavfi是跟-filter_complex⼀个意思,设置滤波器,ffmpeg⽀持的filter有很多种类型,在下载的ffmpeg的包⾥⾯有⼀个叫做ffmpeg-filters.htm的⽹页就是讲的⽀持的各种filter, 详见ssim是其中⽀持的⼀个filter,在使⽤ssim的时候,要求输⼊的两个video要有相同的format resolution,⽽且帧数要⼀样每⼀帧都会算⼀个ssim的值。

ffmpeg命令使用 -回复

ffmpeg命令使用 -回复

ffmpeg命令使用-回复建立、编辑和转换多媒体文件是现代技术和媒体领域中的一个重要任务。

FFmpeg是一个强大的开源软件套件,用于处理音频、视频和多媒体数据。

它提供了许多功能强大的命令,可以用于从不同格式的媒体文件中提取、转换和编辑内容。

在本文中,我将向您介绍FFmpeg的一些常见命令和用法,帮助您更好地了解如何使用它。

首先,让我们来探讨一些基本的FFmpeg命令。

要开始使用FFmpeg,您需要先安装它。

您可以从官方网站1. 查看FFmpeg版本在命令行中输入以下命令可以查看您安装的FFmpeg版本:ffmpeg -version2. 转换文件格式要将一个媒体文件从一个格式转换为另一个格式,您可以使用以下命令:ffmpeg -i input.mp4 output.avi在上面的命令中,input.mp4是您要转换的源文件,output.avi是转换后的目标文件。

3. 提取音频或视频如果您只需要提取媒体文件中的音频或视频部分,您可以使用以下命令:提取视频:ffmpeg -i input.mp4 -vcodec copy -an output.mp4提取音频:ffmpeg -i input.mp4 -vn -acodec copy output.mp34. 调整音频和视频质量您可以使用FFmpeg命令调整音频和视频的质量。

下面是一些常见的命令示例:调整视频比特率:ffmpeg -i input.mp4 -b:v 1M output.mp4调整音频比特率:ffmpeg -i input.mp3 -b:a 128k output.mp3调整视频分辨率:ffmpeg -i input.mp4 -s 1280x720 output.mp45. 剪辑和合并媒体文件使用FFmpeg,您可以剪辑和合并多个媒体文件。

以下是一些示例命令:剪辑视频片段:ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy output.mp4 在上面的命令中,-ss参数用于设置开始剪辑的时间戳,-t参数用于设置剪辑的持续时间。

ffmpeg常用的命令

ffmpeg常用的命令

ffmpeg常用的命令ffmpeg是一个强大的多媒体处理工具,它可以处理视频、音频和图像等多种多媒体格式。

本文将介绍一些ffmpeg常用的命令及其用法。

一、视频处理命令1. 视频格式转换ffmpeg -i input.mp4 output.avi这个命令将把input.mp4转换为output.avi的格式。

其中,input.mp4是要转换的视频文件,output.avi是转换后的视频文件。

2. 视频剪切ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy output.mp4这个命令将从input.mp4中剪切出从第10秒开始,时长为30秒的视频,并保存为output.mp4。

其中,-ss参数指定开始剪切的时间,-t参数指定剪切的时长,-c copy参数表示直接复制视频流,不进行重新编码。

3. 视频合并ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" output.mp4这个命令将把input1.mp4和input2.mp4两个视频文件合并为一个output.mp4。

其中,-filter_complex参数指定复杂的滤镜图,[0:v][0:a][1:v][1:a]表示两个视频文件的视频流和音频流,concat=n=2:v=1:a=1[outv][outa]表示合并后的视频流和音频流。

-map参数指定输出的视频流和音频流。

二、音频处理命令1. 音频格式转换ffmpeg -i input.mp3 output.wav这个命令将把input.mp3转换为output.wav的格式。

FMPEG常用指令

FMPEG常用指令

FMPEG常用指令1.查看视频信息2.ffmpeg -i /路径2.播放视频3.ffplay /路径3.旋转视频ffmpeg -i 123456.mp4 -metadata:s:v rotate='90' -codec copy output_success.mp4 -------------------4.MP4 转化为 GIFffmpeg -i small.mp4 small.gif•转化视频中的一部分为 GIF:ffmpeg -t 3 -ss 00:00:02 -i small.webm small-clip.gif从视频中第二秒开始,截取时长为3秒的片段转化为 gif5.转化高质量 GIF6.默认转化是中等质量模式,若要转化出高质量的 gif,可以修改比特率ffmpeg -i small.mp4 -b 2048k small.gif6.视频属性调整,缩放视频尺寸ffmpeg -i big.mov -vf scale=360:-1 small.mov注意 sacle 值必须是偶数,这里的 -1 表示保持长宽比,根据宽度值自适应高度。

如果要求压缩出来的视频尺寸长宽都保持为偶数,可以使用 -27.加倍速播放视频ffmpeg -i input.mov -filter:v 'setpts=0.5*PTS' output.mov•定义帧率 16fps:ffmpeg -i input.mov -r 16 -filter:v 'setpts=0.125*PTS' -an output.mov8.慢倍速播放视频ffmpeg -i input.mov -filter:v 'setpts=2.0*PTS' output.mov•静音视频(移除视频中的音频)ffmpeg -i input.mov -an mute-output.mov-an 就是禁止音频输出9.将 GIF 转化为 MP4ffmpeg -f gif -i animation.gif animation.mp4•也可以将 gif 转为其他视频格式ffmpeg -f gif -i animation.gif animation.mpegffmpeg -f gif -i animation.gif animation.webm获取 GIF 的第一帧图片使用 ImageMagick 可以方便第提取 gif 图片的第 N 帧图像。

UbuntuLinux下Ffmpeg及Mencoder安装使用小结

UbuntuLinux下Ffmpeg及Mencoder安装使用小结近段时间在学习Ffmpeg、Mencoder音视频转换,大概在Ubuntu 10.04、Ubuntu 10.10、Ubuntu Natty 测试版上安装和使用过。

重点是针对低分辨率的普通手机视频,测试的手机为Bird V780,主要参数为,视频编码:mpeg4、h263,音频编码:faac、amrnb,容器格式:mp4、3gp,分辨率:176×144;音乐文件格式:mp3 。

下面对 Ubuntu Linux 下 Ffmpeg 及 Mencoder 安装使用作个小结。

1、安装:安装Ubuntu 软件仓库里的版本是很容易的,用sudo apt-get install 命令就可以自动安装上。

但是官方仓库里面的版本比较陈旧,可能缺失一些功能和存在一些bug 没有解决,更重要的是,一些需要的编码支持没有被官方版本编译进去,如用于普通手机视频的faac、amr 音频编码支持等。

而且,两个软件官方网站均推荐使用其svn 或git 开发版本。

所以,下面着重总结编译安装 ffmpeg 和 mencoder。

为了避免可能的冲突,在开始之前,我卸载了仓库版本的相关软件:sudo apt-get remove ffmpeg mencoder mplayer获取Ffmpeg 开发版本:git clone git:///ffmpeg.git ffmpeg获取Mplayer 开发版本(包含了mencoder):svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer实际上 ./configure 配置 Mplayer 时会自动从 Ffmpeg 的开发库中下载 ffmpeg 最新开发版源码供编译 Mplayer 使用,因为 Mplayer 和 Mencoder 会调用 Ffmpeg 的库。

而且,在当前的 Mplayer 编译中,如果没有特别设定,Mplayer 会把 Ffmpeg 的库编译成静态库编入Mplayer 或Mencoder 的二进制文件中,使这两个文件达到约14M左右。

ffmpeg命令使用

ffmpeg命令使用FFmpeg是一款强大的开源多媒体框架,被广泛用于音视频处理和转码。

它支持众多音视频格式,具备丰富的功能和灵活的编解码能力。

下面将一步一步地介绍FFmpeg的命令使用,帮助用户更好地了解和使用这个工具。

第一步:安装FFmpeg首先,在命令行或终端中输入以下命令来安装FFmpeg:sudo apt-get install ffmpeg如果你使用的是Windows系统,可以从FFmpeg官网()上下载预编译好的二进制文件,并将其添加到系统的环境变量中。

第二步:基本命令的使用在命令行或终端中,你可以输入以下命令:ffmpeg -i input_file output_file其中,input_file是待处理的音视频文件的路径,output_file是处理后的音视频文件的路径。

通过这个命令,你可以实现简单的音视频转码功能。

第三步:音视频转码FFmpeg能够处理各种音视频格式之间的相互转换。

例如,将MP4格式的视频转换为AVI格式,可以使用以下命令:ffmpeg -i input.mp4 -f avi output.avi其中,-i参数指定了输入文件,-f参数指定了输出格式。

你可以根据实际情况替换输入和输出文件的路径,以及指定不同的输出格式。

第四步:剪切和拼接视频你可以使用FFmpeg来剪切和拼接视频。

比如,将视频的前5秒剪切下来:ffmpeg -ss 00:00:00 -i input.mp4 -t 00:00:05 -c copy output.mp4这里,-ss参数指定了剪切的起始时间,-t参数指定了剪切的持续时间,-c copy参数表示直接复制原始编码格式。

如果你想将多个视频文件拼接在一起,可以使用以下命令:ffmpeg -i "concat:input1.mp4 input2.mp4" -c copy output.mp4这里,concat参数用于指定要拼接的文件名列表,每个文件由分隔,-c copy参数表示直接复制原始编码格式。

ffmpeg+mencoder环境搭建和视频处理总结

ffmpeg+mencoder几乎可以完成目前基于web的播客平台任何音视频处理的操作.如果还需要添加一些什么的话,那么就是视频在线录制功能了,这个也可以用ffmpeg+fms来完成,因此一般的类似于YouTube的一些可见功能都可以在ffmpeg+mencoder+fms来做后台实现.由于fms没有实践,因此这里不描述.本文档有三部分:1)ffmpeg+mencoder环境搭建2)常见操作说明3)个人的一些使用心得1.ffmpeg+mencoder环境搭建1)概论音视频界众多的编解码协议和各个公司定义的专用格式导致目前的视频音频文件纷繁复杂,单纯的ffmpeg支持的格式并不完全包括所有种类,至少swf,rmvb(rv4)目前的版本是不支持的.同时wma9似乎可以支持了.但没有测试.同时mencoder能支持rm,rmvb等格式,但是从视频中获取某帧截图的工作只能由ffmpeg完成.因此可以采用ffmpeg+mencoder完成目前所有流行格式的视频压缩转换,设置视频信息,截取视频中的图片等功能了,同时,采用其他的一些开源工具如MediaInfo可以获取视频的元数据信息.2)ffmpeg篇首先获取软件包:ffmpeg,lame(支持mp3),ogg vorbis,x264(h264 codec),xvid,3gp,libdts,mpeg4 aac.这些软件包在71.21的/home/zhengyu/tools里面都能找到.如果需要网上下载的话,可以提供下载地址.ffmpeg官网下载:http://ffmpeg.mplayerhq.hu...如果官网下载有问题的,xplore也提供了1月30的snapshot:下载ffmpeg.lame下载:当前版本为3.97,/pro...或者到xplore下载lame.ogg vorbis:这个一般的redhat自带,不需要下载.可以去看看/usr/lib/libvorbis.a在不在,如果不在可以yum install或apt-get install.xvid下载:/..., xplore下载xvid.x264下载:这个可以去ftp:///下寻找最近的snapshot下载,或者svn获取,注意如果ffmpeg是什么时候的,x264的snapshot也应该是什么时候的,不然编译的时候容易报错.ftp:///pub...xplore下载x264的1月29日的snapshot.libdts:http://download.chinaunix...., xplore下载libdts:上面的软件包除了ffmpeg之外,在下载完成后解包,编译的参数都是./configure --prefix=/usr--enable-shared;make;sudo make installmpeg4 aac/aad2:...,...faac和faad2在下载解包之后需要自己automake生成编译文件.其中faac的1.25版本需要将内置的configure.in 文件最后的AM_OUTPUT中的几个续行去掉,并取消分行.然后按照bootstrap里面的操作进行,无非是aclocal-I .;autoheader;libtoolize --automake;automake -a --copy;autoconfig(或者前面的由autoreconf -vif替代);./configure --prefix=/usr --enable-shared;make;sudo make install;faad2的2.5版本需要修改内置的configure.in文件,不然会在没有libbmp时编译会通不过.找到configure.in中下面一段:引用if test x$WITHBMP = xyes; thenAC_DEFINE([HAVE_BMP], 1, [User wants beep media player plugin built])AM_CONDITIONAL([HAVE_XMMS], true)AM_CONDITIONAL([HAVE_BMP], true)fiif test x$WITHDRM = xyes; then改成if test x$WITHBMP = xyes; thenAC_DEFINE([HAVE_BMP], 1, [User wants beep media player plugin built])AM_CONDITIONAL([HAVE_XMMS], true)AM_CONDITIONAL([HAVE_BMP], true)elseAC_MSG_NOTICE(no bmp build configured)AM_CONDITIONAL([HAVE_BMP], false)fiif test x$WITHDRM = xyes; then然后autoreconf -vif;./configure --prefix=/usr --enable-shared;make;sudo make install;这里提供两个已经修改好的.只需要make clean;make;sudo make install;的tar包.faac1.25下载,faad2.5下载.3gp支持:在编译ffmpeg加入--enable-amr_nb --enable-amr_wb的时候,会有提示,下载:/ftp/Sp...,解压的源代码文件以后把里面的文件都拷贝到ffmpeg的源代码目录下libavcodec/amrwb_float;然后下载:/ftp/Sp...,解压得源代码文件以后把里面的文件都拷贝到ffmpeg解包目录下的libavcodec/amr_float,然后交给ffmpeg编译去做了.也可以在这里下载这两个包:amrwb_float下载,amr_float下载.这些codec都安装完毕之后便可以编译ffmpeg了,编译参数如下:./configure --prefix=/usr/local --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb--enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-faadbin --enable-dts --enable-pp --enable-faad --enable-faac --enable-x264 --enable-pthreads--disable-ffserver --disable-ffplaymake(sudo make install)然后就可以尝试用ffmpeg做视频转换截图了.当然,上面那些codec的编译是相当乏味的.你也可以根本不理会这些.因为最新版本的ffmpeg已经比以前支持更多的格式了.因此也可以只安装lame,xvid,x264就可以了.下面是两种配置下支持的格式diff -w的结果:引用2c2< configuration: --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb--enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-faadbin --enable-dts --enable-pp --enable-faad --enable-faac --enable-x264 --enable-pthreads--disable-ffserver --disable-ffplay---> configuration: --prefix=/usr/local --enable-mp3lame6c6< built on Jan 30 2007 17:55:22, gcc: 4.1.1 20061011 (Red Hat 4.1.1-30)---> built on Jan 30 2007 17:46:19, gcc: 4.1.1 20061011 (Red Hat 4.1.1-30)40c40< DE gxf GXF format---> D gxf GXF format72c72< DE ogg Ogg Vorbis---> D ogg Ogg111d110< DEA aac113c112< DEA ac3---> EA ac3132,133d130< DEA amr_nb< DEA amr_wb147d143< D A dts164c160< DEV DT h264---> D V DT h264190d185< D A mpeg4aac275d269< EV xvid3)mencoder篇首先获取mplayer软件包极其mplayer官网上自带的codecs.如果喜欢mplayer,也可以下载gui和font.关于mplayer-1.0rc1在71.21的/home/zhengyu/tools中能找到.如果需要网上下载,可以去官网:http://www.mplayerhq.hu/de...下载rc1地址如下:http://www1.mplayerhq.hu/M...最新的svn版本:http://www1.mplayerhq.hu/M...官网同时也给出了一些codec,其中就有rm格式的codec:http://www1.mplayerhq.hu/M...xplore也提供下载,mplayer1.0rc1下载,codec下载.下载完成之后,将tar vxjf essential-20061022.tar.bz2;sudo mkdir -p /usr/lib/codecs;sudo cp -rf essential-20061022/* /usr/lib/codecs;然后解包mplayer,按如下方式编译:./configure --prefix=/usr/local --enable-gui --enable-largefiles --enable-gif --enable-png --enable-jpeg--language=zh_CN --with-codecsdir=/usr/lib/codecs/make(sudo make install)然后就可以使用mencoder,当然也有一个没有gui的mplayer可以播放各种视频了.不过我们需要的是mencoder.至此,ffmpeg+mencoder搭建完成.2.常见操作说明对于ffmpeg,可以将除swf,rmvb,wmav9以外的视频/音频格式转换成flv/mp3,同时可以截取这些视频文件中的某个时间的该帧图片.这些实际上就是一个视频播客显示的部分.对于mencoder,支持各种常见格式的视频/音频转换成flv/mp3.或者转换成avi.1)ffmpeg篇:ffmpeg的命令行参数因为太多,这里不列出,可以用ffpmeg -h可以查看到.列出非高级参数如下:引用Main options:-L show license-h show help-version show version-formats show available formats, codecs, protocols, ...-f fmt force format-i filename input file name-y overwrite output files-t duration set the recording time-fs limit_size set the limit file size-ss time_off set the start time offset-itsoffset time_off set the input ts offset-title string set the title-timestamp time set the timestamp-author string set the author-copyright string set the copyright-comment string set the comment-album string set the album-v verbose control amount of logging-target type specify target file type ("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ...) -dframes number set the number of data frames to record-scodec codec force subtitle codec ('copy' to copy stream)-newsubtitle add a new subtitle stream to the current output stream-slang code set the ISO 639 language code (3 letters) of the current subtitle streamVideo 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)-croptop size set top crop band size (in pixels)-cropbottom size set bottom crop band size (in pixels)-cropleft size set left crop band size (in pixels)-cropright size set right crop band size (in pixels)-padtop size set top pad band size (in pixels)-padbottom size set bottom pad band size (in pixels)-padleft size set left pad band size (in pixels)-padright size set right pad band size (in pixels)-padcolor color set color of pad bands (Hex 000000 thru FFFFFF)-vn disable video-vcodec codec force video codec ('copy' to copy stream)-sameq use same video quality as source (implies VBR)-pass n select the pass number (1 or 2)-passlogfile file select two pass log file name-newvideo add a new video stream to the current output streamSubtitle options:-scodec codec force subtitle codec ('copy' to copy stream)-newsubtitle add a new subtitle stream to the current output stream-slang code set the ISO 639 language code (3 letters) of the current subtitle streamAudio/Video grab options:-vd device set video grab device-vc channel set video grab channel (DV1394 only)-tvstd standard set television standard (NTSC, PAL (SECAM))-ad device set audio device-grab format request grabbing using-gd device set grab deviceAdvanced options:-map file:stream[:syncfile:syncstream] set input stream mapping-map_meta_data outfile:infile set meta data information of outfile from infile-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 loop (current only works with images)-loop_output number of times to loop output in formats that support looping (0 loops forever) -threads count thread count-vsync video sync method-async audio sync method-vglobal video global header storage type-copyts copy timestamps-shortest finish encoding within shortest input-dts_delta_threshold timestamp discontinuity delta threshold-ps size set packet size in bits-muxdelay seconds set the maximum demux-decode delay-muxpreload seconds set the initial demux-decode delay如果这些都明白了,并且有编程基础,你就可以去参与ffmpeg开发了.其实这些堆积起来的命令95%一般是用不上的.这里介绍一些简单的常见的命令:-fromats 显示可用的格式-f fmt 强迫采用格式fmt-I filename 输入文件-y 覆盖输出文件-t duration 设置纪录时间hh:mm:ss[.xxx]格式的记录时间也支持(截图需要)-ss position 搜索到指定的时间[-]hh:mm:ss[.xxx]的格式也支持-title string 设置标题-author string 设置作者-copyright string 设置版权-comment string 设置评论-target type 设置目标文件类型(vcd,svcd,dvd),所有的格式选项(比特率,编解码以及缓冲区大小)自动设置,只需要输入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg-hq 激活高质量设置-b bitrate 设置比特率,缺省200kb/s-r fps 设置帧频,缺省25-s size 设置帧大小,格式为WXH,缺省160X128.下面的简写也可以直接使用:Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576-aspect aspect 设置横纵比4:3 16:9 或1.3333 1.7777-croptop/botton/left/right size 设置顶部切除带大小,像素单位-padtop/botton/left/right size 设置顶部补齐的大小,像素单位-padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:蓝排列,比如000000代表黑色)-vn 不做视频记录-bt tolerance 设置视频码率容忍度kbit/s-maxrate bitrate设置最大视频码率容忍度-minrate bitreate 设置最小视频码率容忍度-bufsize size 设置码率控制缓冲区大小-vcodec codec 强制使用codec编解码方式. 如果用copy表示原始编解码数据必须被拷贝.(很重要)-ab bitrate 设置音频码率-ar freq 设置音频采样率-ac channels 设置通道,缺省为1-an 不使能音频纪录-acodec codec 使用codec编解码-vd device 设置视频捕获设备,比如/dev/video0-vc channel 设置视频捕获通道DV1394专用-tvstd standard 设置电视标准NTSC PAL(SECAM)-dv1394 设置DV1394捕获-av device 设置音频设备比如/dev/dsp-map file:stream 设置输入流映射-debug 打印特定调试信息-benchmark 为基准测试加入时间-hex 倾倒每一个输入包-bitexact 仅使用位精确算法用于编解码测试-ps size 设置包大小,以bits为单位-re 以本地帧频读数据,主要用于模拟捕获设备-loop 循环输入流。

转码平台搭建

Ffmpeg+mencoder转码平台搭建安装svn为了checkout ffmpeg安装APRtar -xvzf apr-1.2.12.tar.gz;cd apr-1.2.12;./configure --enable-shared --prefix=/usr/local/apr;make;make install;安装Apr-utiltar -xvzf apr-util-1.2.12.tar.gz;cd apr-util-1.2.12;./configure --enable-shared –with-apr=/usr/local/apr --prefix=/usr/local/apr-util; make;make install;下载并安装SVNwget /downloads/subversion-1.3.2.tar.gztar zvxf subversion-1.3.2.tar.gzcd subversion-1.3.2./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-utilmakemake install1、lamelame-3.98.4.tar.gzUrl:/project/showfiles.php?group_id=290&package_id=309 安装方法如下:tar -zxvf lame-3.98.4.tar.gzcd lame-3.98.4./configure --enable-shared --prefix=/usrmakemake install2、libpnglibpng-1.1.3.tar.gzUrl:/releases/ogg/libogg-1.1.3.tar.gz安装方法如下:./configure --prefix=/usr --enable-sharedmakemake install3、支持Ogg Vorbis:yum安装libvorbis, libvorbis-devel,libogg, libogg-devel4.imlib2-1.4.4.tar.gz./configure --prefix=/usr --enable-shared --without-xmakemake install如果在make时失败的话,请使用yum install freetypeyum install libjpegyum install libpng5、xvidxvidcore-1.1.3.tar.gzUrl:/downloads/xvidcore-1.1.3.tar.gz安装方法如下:tar zvxf xvidcore-1.1.3.tar.gzcd xvidcore-1.1.3/build/generic./configure --prefix=/usrmakemake install6、x264x264-snapshot-20100505-2245.tar.bz2Url:/developers/x264.htmlftp:///pub/videolan/x264/snapshots/tar jxvf x264-snapshot-20100505-2245.tar.bz2./configure --prefix=/usr --enable-shared出现下列错误:Found no assemblerMinimum version is yasm-0.6.2If you really want to compile without asm, configure with --disable-asm. 需安装yasmwget /projects/yasm/releases/yasm-1.0.0.tar.gz tar -zxvf yasm-1.0.0.tar.gzcd yasm-1.0.0cd /usr/local/src/x264-snapshot-20100505-2245./configure --prefix=/usr --enable-sharedmakemake install重新配置makemake install7、libdtslibdts-0.0.2.tar.gz/pub/videolan/libdca/0.0.2/libdca-0.0.2.tar.gztar zxvf libdts-0.0.2.tar.gzcd libdts-0.0.2./configure --prefix=/usr --enable-sharedmakemake install8、a52a52dec-0.7.4.tar.gz/downloads.htmltar -zxvf a52dec-0.7.4.tar.gz./configure --prefix=/usr --enable-sharedmakemake installwget /rpm/packages/a52dec/a52dec-0.7.4-8.el5.rf.x86_64.rpm rpm -ivh a52dec-0.7.4-8.el5.rf.x86_64.rpm9、faad2faad2-2.6.1.tar.gz/downloads.htmlautoreconf -vif./configure --prefix=/usr --with-mp4v2 --enable-sharedmakemake install10、faacfaac-1.26.tar.gz/progDownload/FAAC-Download-554.htmltar zxvf faac-1.26.tar.gzcd faac./bootstrap./configure --prefix=/usrmakemake install11.3GP支持:适合最新的ffmpeg11.amrnb和amrwb安装/project/opencore-amr/opencore-amr/0.1.2/opencore-amr-0.1.2.ta r.gztar -zxvf opencore-amr-0.1.2.tar.gzcd opencore-amr-0.1.2./confifure --prefix=/usr适合老的ffmpeg支持3gp格式,这也是现在好多手机支持的格式,因为手机用户是我们的主要用户,所以也得支持编译ffmpeg编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一些编译3gp所需得文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档