我们使用脚本获取本地ip的方式,大多人选用的是ifconfig命令,从里面提取ip,最近在看proc,/proc/net/tcp这个文件里就有本地ip.
Submitted by admin on 2012, February 6, 6:27 PM
我们使用脚本获取本地ip的方式,大多人选用的是ifconfig命令,从里面提取ip,最近在看proc,/proc/net/tcp这个文件里就有本地ip.
Submitted by admin on 2012, January 31, 10:46 AM
测试系统 :Asianux 3.0 sp2 x86
kernel : 2.6.18-128.7
pam版本:pam-0.99.6.2-4.1AXS3
操作方法:
一、在字符终端下,实现某一用户连续错误登陆N次后,就锁定该用户X分钟。
执行 vi /etc/pam.d/login
在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
如果不限制root用户,则可以写成
auth required pam_tally2.so deny=3 unlock_time=5
1 |
其中大概含义如下: |
2 |
even_deny_root 也限制root用户; |
3 |
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户; |
4 |
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒; |
5 |
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒; |
此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。
二、在图形登陆界面下,实现某一用户连续错误登陆N次后,就锁定该用户X分钟。
执行 vi /etc/pam.d/kde
在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so even_deny_root deny=3 unlock_time=5 root_unlock_time=10
如果不限制root用户,则可以写成
auth required pam_tally2.so deny=3 unlock_time=5
三、也可以直接在 system-auth 文件中直接添加这些命令,修改完成后,凡是调用 system-auth 文件的服务,都会生效。因为有自动解锁时间,所以,不用担心全部限制后,会出现永远无法登陆的“尴尬”情况。
备注:
可以使用 pam_tally2 -r -u username 命令,手动清除某用户记录次数。
关于 pam_tally 的用法,可参考下面链接:
http://www.edward-han.com/166.html
Submitted by admin on 2011, December 16, 9:21 PM
http://hi.baidu.com/farmerluo/blog/item/0e4abc3eb5abaef7838b1359.html
http://bbs.pediy.com/showthread.php?threadid=11315
Submitted by admin on 2011, December 16, 9:20 PM
tweak是可以在命令行方式下使用的16进制编辑器,在Ubuntu Linux下可以用apt-get install tweak安装,用man可以看使用方法。
命令格式:
tweak [‐l | ‐f] [‐e] [‐w width] [‐o offset] filename
参数说明:
-f:fix模式,只能修改原有字节,不能插入
-l:查看模式,只能查看 ,不能修改
-e:eager模式,会将文件全部读入内存。默认情况下为lazily模式,只读入需要的部分。
-w:指定每行显示的字节数,默认为16字节
-o:对显示进行调整,使指定偏移位于行首
-D:不载入和编辑文件,仅用于显示.tweakrc的内容
按键:
移动键:
· ^P , ^N 向上或向下移动一行; 功能同上下箭头键
· ^B , ^F 向左或向右移动一个字符; 功能同左右箭头键
· M-v , ^V 上翻或下翻一屏; 功能同Page Up 及 Page Down
· ^A , ^E 移动或行首或行尾,功能同 Home 和 End
按 M-< 及 M-> 移动到文件首部或文件结尾
按 ^X 移动到指定位置,可以用10进制或16进制形式指定位置,若用16进制形式,要在数字前加0x
编辑键:
按Return可使光标在16进制区域和ASCII区域进行切换
在ASCII模式下, 可以按 ^Q 对随后的字符进行转义,例如:如果想输入Control-V(16进制为0x16), 可以按下^Q^V,tweak 会自动插入16进制为0x16的字符.
查找:
按 ^S 以字节方式进行查找, 查找内容可以是ASCII文本, 也可以是16进制值。若是16进制值,要在值前加反斜杠(\).
例如:如果要查的以值为5的字节开头随后为`hello'的串, 可以输入 \05hello.
如果要查找反斜杠(\),可以以16进制形式查找 ( \5C), 或直接输入两个反斜杠 (\\).
按 ^R 进行反方向查找
由于tweak处理的是纯二进制数据,所有查找都是大小写敏感的。、
控制及显示:
按 ^X w 可以修改每行显示的字节数,效果同使用 -w 参数相同。
按^X o 可以使指定偏移位于行首,效果同使用-o参数相同.
默认情况下,当前位置及文件长度以16进制显示在状态栏,按 ^X x 或^X h可以在16进制和10进制间进行切换.
其他:
按 ^L 重绘屏幕
按 ^Z 挂起tweak并临时返回到shell.
按 ^X^S 进行存盘.
按^X^C 退出tweak.
配置文件:
用户目录下的.tweakrc可以对tweak的按键和默认参数进行定制。可以用tweak -D来查看.tweak的内容.
若没有.tweakrc文件,可以用tweak ‐D > $HOME/.tweakrc 来使用程序内部默认值生成.tweakrc文件。
Submitted by admin on 2011, October 11, 1:00 PM
为了限制无线路由器上大家的上网速度,减少p2p工具的影响
可以通过arp欺骗和iptables来限制局域网的上网速度
操作系统:ubuntu
1)sudo apt-get install dsniff nmap
2)探测局域网主机的ip地址
sudo nmap -sS 网关ip/24
在此例中:
192.168.1.100 为要限速的主机
192.168.1.1 为网关地址
3)打开 内核的 IP 转发,让我们的主机成为路由器
echo 1 > /proc/sys/net/ipv4/ip_forward
4)使用 iptables和arpspoof进行 限速! 脚本如下
使用方式:
sudo ./iptable.sh 要限的速度(30为40k/s) 网关ip 限速主机1 限速主机2
#!/bin/bash
if [ $# -le 2 ]
then
echo "Usage: ./iptables.sh speed gateway ip1 ip2 ...."
exit -1
else
speed=$1
gateway=$2
fi
IPT=/sbin/iptables
while [ $# -gt 2 ]
do
shift
echo $gateway,$2
arpspoof -i eth0 -t $2 $gateway&
arpspoof -i eth0 -t $gateway $2&
$IPT -A FORWARD -s $2 -m limit --limit ${speed}/s -j ACCEPT
$IPT -A FORWARD -d $2 -m limit --limit ${speed}/s -j ACCEPT
$IPT -A FORWARD -s $2 -j DROP
$IPT -A FORWARD -d $2 -j DROP
done
转
Submitted by admin on 2011, October 8, 12:15 PM
由于默认的CentOS的软件仓库里没有FFmpeg、Mencoder、FFmpeg-PHP、Flvtool2这几个玩意,所以咱就安装第三方的软件仓库。
for i386/686 :
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
for x86_64:
rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
安装好rpmforge后,执行:
yum -y install ffmpeg ffmpeg-devel mencoder flvtool2
就可以把所需要的包安装好了。
安装FFmpeg-PHP
wget http://garr.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
tar jxvf ffmpeg-php-0.6.0.tbz2 -C src
cd src/ffmpeg-php-0.6.0
/var/webserver/php/bin/phpsize
./configure
make && make install
安装好FFmpeg-PHP,修改php.ini,添加
extension=ffmpeg.so
/etc/init.d/lnmp 重启WEB服务
php -m | grep ffmpeg //查看有没有安装成功ffmpeg
While compiling ffmpeg-php Error: /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function ‘zif_ffmpeg_frame_toGDImage’: /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: ‘PIX_FMT_RGBA32′ undeclared (first use in this function) /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: (Each undeclared identifier is reported only once /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: for each function it appears in.) /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function ‘zif_ffmpeg_frame_ffmpeg_frame’: /usr/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:421: error: ‘PIX_FMT_RGBA32′ undeclared (first use in this function) ————————————————————————————–
Fix: With the latest version of ffmpeg-php (0.6.0), update ffmpeg_frame.c and replace every instance of PIX_FMT_RGBA32 with PIX_FMT_RGB32
vi ffmpeg_frame.c
:%s/PIX_FMT_RGBA32/PIX_FMT_RGB32
:w :q!
./configure make make install add extension=”ffmpeg.so” inside php.ini .
转
Submitted by admin on 2011, October 8, 11:48 AM
FLV格式是FLASH VIDEO格式的简称,随着Flash MX的推出,Macromedia公司开发了属于自己的流媒体视频格式——FLV格式。FLV流媒体格式是一种新的视频格式,由于它形成的文件极小、加载速度也极快,这就使得网络观看视频文件成为可能,FLV视频格式的出现有效地解决了视频文件导入Flash后,使导出的SWF格式文件体积庞大,不能在网络上很好的使用等缺点,FLV是在sorenson公司的压缩算法的基础上开发出来的。sorenson公司也为MOV格式提供算法。FLV格式不仅可以轻松的导入Flash中,几百帧的影片就以两秒钟;同时也可以通过rtmp 协议从Flashcom 服务器上流式播出。因此目前国内外主流的视频网站都使用这种格式的视频在线观看。
flv在线播放器 Vcastr3
下载地址:
http://www.ruochigroup.com/main/2008/03/19/vcastr-30/
有一个源于Linux的工具软件ffmpeg可以轻易地实现FLV向其它格式(avi(mpeg4)、asf、mpeg)的转换或者将其它格式转换为flv。
如果只需要转到flv,装mencoder和codecs就可以了,如果还需要截图或者其他功能,就要装ffmpeg和相关解码包。ffmpeg支持的格式没有前者多,但是速度比较快,参数也很简单。另外我们还需要转换到rm,找了很久都没找到基于前述两种软件的解决方法。在对转换速度不具特殊需求的情况下,我使用Helix Producer for linux来解决该问题,这同时也是real的人所建议的。
mencoder
下载地址:
MPlayer-1.0rc2-gui.zip
MPlayer-mingw32-1.0rc2.zip
http://www5.mplayerhq.hu/MPlayer/releases/win32/
windows-all-20071007.zip
http://www5.mplayerhq.hu/MPlayer/releases/codecs/
参数说明:
CODE:
mencoder [options] file1 [specific options] [file2] [specific options]
mencoder src.avi -o dst.avi -vf scale=320:240 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500
# src.avi 原文件
# -o dst.avi 定义压缩为dst.avi
# -vf scale=320:240,调整视频尺寸到320x240;
# -oac copy,指定音频编码器,copy是指不压缩,直接使用源文件里的音频。copy换成 MP3lame,即压缩成mp3。
# -ovc lavc,指定视频编码器,使用libavcodec编码器;
# -lavcopts vcodec=mpeg4:vbitrate=500,指定libavcodec的参数,vcodec=mpeg4指使用mpeg4压缩,就是DivX,vbitrate=500指500kbps的比特率。
CODE:
mencoder src.avi -o dst.flv -of lavf -oac MP3lame -lameopts abr:br=32:mode=3 -ovc lavc i_certify_that_my_video_stream_does_not_use_b_frames -vf scale=350:-3 -sws 2
# src.avi 输入文件路径,是Mplayer能支持的格式即可
# -o dst.flv 输出路径
# -of lavf 输出格式 lavf表示libavcodec
# -oac MP3lame 输出音频编码方式,lame是最好的mp3编码器
# -lameopts abr:br=32:mode=3 abr代表平均码率,相对于cbr(固定码率)和vbr(可变码率,貌似不支持),br就是音频的码率,越高音质越好,mode=3,0-3分别代表 Stereo,Joint Stereo,Force ms_stereo,Mono(默认为自动,事实上1和3对文件大小的影响并不是很大),另外可选的还有 vol(音量,取值0-10,数值越大音量越大,不建议修改)等
# -srate 22050 声音采样频率设置,也可以选11025,文件可以稍小一点
# -ovc lavc 输出视频编码 lavc就是libavcodec
# -lavcopts codec=flv flv格式压缩 vbitrate=150 视频码率
# -vf scale=350:-3 -sws 2 缩放视频,指定宽度为350,高度按比例来。质量由-sws选项控制,具体看手册
# -ofps 23 设定帧数,缩小帧数对节约文件大小效果不明显,且可能造成画面声音同步。建议不设置
mencoder “input.avi" -o "output.flv" -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -ofps 29.97 -srate 22050
参数详解:
-o "output.flv":是输出文件路径;
-of lavf:是输出文件格式,这里不是flv而是lavf,是因为flv属于libavformat;
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames:-lavfopts表示对lavf进行一些设置,设置的内容就是i_certify_that_my_video_stream_does_not_use_b_frames,翻译成中文就是:我确定,我的视频不用B frames,对于转换flv格式,最好加上这个参数,否则可能会报错。
-oac mp3lame:oac=output audio codec,输出音频编码器,这里用的mp3lame;
-lameopts abr:br=56:lame options,是专门针对mp3lame的参数设置,abr:br=56,是设置音频比特率为56;
-ovc lavc:ovc=output video codec,输出视频编码器,lavc表示one of libavcodec’s video codec,输出格式为libavformat之一;
-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:v4mv:trell:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1:对lavc进行一些设置,详细介绍如下:
vcodec=flv:指定视频编码器为flv;
vbitrate=500:指定视频比特率为500。
mbd:宏模块选择算法,值为0~2默认为0,值越大转换越缓慢,但在品质和文件大小方面有好处;
mv0:编译每个宏模块并选择最好的一个,当mbd=0时无效;
v4mv:会稍微增加品质,mbd>0时效果更明显;
trell:量子化网格搜索,对每8×8block找到最优化编码;
cbp:只能和trell一期使用,评估失真的图像块编码;
last_pred=3:与上一帧相比的移动数量预测,值为0~99,1~3比较合适,大于3时对品质的提高已经无关紧要,但却会降低速度;
dia=4:移动搜索范围,值为-99~6,对于快速转换,-1是个不错的值,如果不是很重视速度,可以考虑2~4;
cmp=6:值为1~2000,默认为0,设置用于全象素移动预算的比较函数
vb_strategy=1:对动作很大的场景会有帮助,对有些视频,设置vmax_b_frames会有损品质,加上vb_strategy=1会好点。
示例:
rmvb->flv
mencoder D:/video/xchk.rmvb FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 -o D:/video/xchk.flv
mencoder D:/video/tl.rmvb FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 -o D:/video/test/tl.flv
mpg->flv
mencoder D:/video/hx.mpg FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 -o D:/video/test/hx1.flv
DAT->flv
mencoder D:/video/avs001.DAT FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 -o D:/video/test/avs0011.flv
avi->flv
mencoder D:/video/pxgk.avi FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 -o D:/video/test/pxgk1.flv
----------------------------------------------------------
ffmpeg
ffmpeg能解析的格式:asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等
下载地址:
http://tirnanog.fate.jp/mirror/ffmpeg/
ffmpeg参数说明
【常用参数】 【说明】 【示例】
-i "路径" 指定需要转换的文件路径 -i "C:/nba.wmv"
-y 覆盖输出文件,即如果nba.xxx文件已经存在的话,直接覆盖
控制画面参数
-bitexac 使用标准比特率
-vcodec xvid 使用xvid压缩
-s <宽高比> 指定分辨率大小 -s 320*240
-r <数值> 帧速率(非标准数值会导致音画不同步【标准值为15或29.97】) -r 15
-b <比特率> 指定压缩比特率 -b 1500
-qmin <数值>
设定最小质量 -qmin 10
-qmax <数值> 与-qmin相反,可以与-qmin同时使用 -qmax 30
-sameq 使用与源视频相同的质量
控制声音参数
-acodec aac 设定声音编码
-ac <数值> 设定声道数:1为单声道,2为立体声 -ac 2
-ar <采样率> 设定声音采样率(8000,11025,22050) -ar 22050
-ab <比特率> 设定声音比特率(-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96) -ab 96
-vol <百分比> 设定音量大小,比如设定200就会比原来的音量大2倍 -vol 200
利用ffmpeg的这两个参数,可以控制让ffmpeg来将一个大video劈分成许多小段的独立播放的文件。
-ss time_off set the start time offset
-t duration set the recording time
详细参数:
ffmpeg [[options][`-i’ input_file]]… {[options] output_file}…
如果没有输入文件,那么视音频捕捉就会起作用。
作为通用的规则,选项一般用于下一个特定的文件。如果你给 –b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。
缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。
3.选项
a) 通用选项
-L license
-h 帮助
-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 激活高质量设置
-itsoffset offset 设置以秒为基准的时间偏移,该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持
b) 视频选项
-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 size 设置顶部切除带大小 像素单位
-cropbottom size –cropleft size –cropright size
-padtop size 设置顶部补齐的大小 像素单位
-padbottom size –padleft size –padright size –padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色)
-vn 不做视频记录
-bt tolerance 设置视频码率容忍度kbit/s
-maxrate bitrate设置最大视频码率容忍度
-minrate bitreate 设置最小视频码率容忍度
-bufsize size 设置码率控制缓冲区大小
-vcodec codec 强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。
-sameq 使用同样视频质量作为源(VBR)
-pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率
-passlogfile file 选择两遍的纪录文件名为file
c)高级视频选项
-g gop_size 设置图像组大小
-intra 仅适用帧内编码
-qscale q 使用固定的视频量化标度(VBR)
-qmin q 最小视频量化标度(VBR)
-qmax q 最大视频量化标度(VBR)
-qdiff q 量化标度间最大偏差 (VBR)
-qblur blur 视频量化标度柔化(VBR)
-qcomp compression 视频量化标度压缩(VBR)
-rc_init_cplx complexity 一遍编码的初始复杂度
-b_qfactor factor 在p和b帧间的qp因子
-i_qfactor factor 在p和i帧间的qp因子
-b_qoffset offset 在p和b帧间的qp偏差
-i_qoffset offset 在p和i帧间的qp偏差
-rc_eq equation 设置码率控制方程 默认tex^qComp
-rc_override override 特定间隔下的速率控制重载
-me method 设置运动估计的方法 可用方法有 zero phods log x1 epzs(缺省) full
-dct_algo algo 设置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC
-idct_algo algo 设置idct算法。可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM
-er n 设置错误残留为n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE
-ec bit_mask 设置错误掩蔽为bit_mask,该值为如下值的位掩码 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled)
-bf frames 使用frames B 帧,支持mpeg1,mpeg2,mpeg4
-mbd mode 宏块决策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD
-4mv 使用4个运动矢量 仅用于mpeg4
-part 使用数据划分 仅用于mpeg4
-bug param 绕过没有被自动监测到编码器的问题
-strict strictness 跟标准的严格性
-aic 使能高级帧内编码 h263+
-umv 使能无限运动矢量 h263+
-deinterlace 不采用交织方法
-interlace 强迫交织法编码 仅对mpeg2和mpeg4有效。当你的输入是交织的并且你想要保持交织以最小图像损失的时候采用该选项。可选的方法是不交织,但是损失更大
-psnr 计算压缩帧的psnr
-vstats 输出视频编码统计到vstats_hhmmss.log
-vhook module 插入视频处理模块 module 包括了模块名和参数,用空格分开
D)音频选项
-ab bitrate 设置音频码率
-ar freq 设置音频采样率
-ac channels 设置通道 缺省为1
-an 不使能音频纪录
-acodec codec 使用codec编解码
E)音频/视频捕获选项
-vd device 设置视频捕获设备。比如/dev/video0
-vc channel 设置视频捕获通道 DV1394专用
-tvstd standard 设置电视标准 NTSC PAL(SECAM)
-dv1394 设置DV1394捕获
-av device 设置音频设备 比如/dev/dsp
F)高级选项
-map file:stream 设置输入流映射
-debug 打印特定调试信息
-benchmark 为基准测试加入时间
-hex 倾倒每一个输入包
-bitexact 仅使用位精确算法 用于编解码测试
-ps size 设置包大小,以bits为单位
-re 以本地帧频读数据,主要用于模拟捕获设备
-loop 循环输入流。只工作于图像流,用于ffserver测试
示例:
抓图 avi->jpg
ffmpeg -i "D:/video/pxgk.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 "D:/video/test/pxgk.jpg"
转换 mp3->flv
ffmpeg.exe -i D:/video/山不转水转.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 D:/video/山不转水转.flv
转换 avi->flv
ffmpeg -i "D:/video/pxgk.avi" -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 D:/video/test/pxgk.flv
转换 DAT->flv error
ffmpeg -i "D:/video/avs001.DAT" -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 D:/video/test/avs001.flv
转换: mpg->flv
ffmpeg -i "D:/video/hx.mpg" -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 D:/video/test/hx.flv
转换: mov->flv
ffmpeg -i "D:/video/heartbeatmv.mov" -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 D:/video/test/heartbeatmv.flv
转换:vob->flv
ffmpeg -i "D:/video/vts.VOB" -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 D:/video/test/vts.flv
利用mencoder转换flv 报错
命令如下:
mencoder D:/video/pxgk.avi -vf scale=320:240 -ffourcc FLV1 -of lavf -ovc lavc -lavcopts vcodec=flv:vbitrate=200 -srate 22050 -oac lavc -lavcopts acodec=mp3:abitrate=56 -o D:/video/test/pxgk1.flv
错误如下:
Forcing output FourCC to 31564c46 [FLV1].
Audio LAVC, couldn't find encoder for codec mp3.
Exiting...
命令修改如下即可:
加上如下命令参数:-oac mp3lame:oac=output audio codec,输出音频编码器,这里用的mp3lame;
mencoder D:/video/pxgk.avi FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 -o D:/video/test/pxgk1.flv
FLV播放时不能拖放
是由FFMPEG、Mencoder转的FLV文件,Meta Data是损坏的,FLV播放时不能拖放。
两个修复工具:Flvtool2,Flvmdi,给flv文件加入时间标签。
Flvtool2 下载:flvtool2-1.0.6.zip
http://rubyforge.org/frs/?group_id=1096&release_id=9694
Flvmdi 下载:
http://www.buraks.com/flvmdi/
使用方法:
命令提示符下输入usage: flvmdi inFile [outFile] [/v] [/s] [/x] [/k] [/l] [/eExtraData] [/p]
inputFile 和 outputFile可以是单独文件或目录,如果未指定输出文件或路径,则对原始文件覆盖。
示例:
flvmdi D:/video/test/hx1.flv D:/video/test/hx12.flv
flvmdi D:/video/test/hx1.flv D:/video/test/hx13.flv /s "/e guoqiang test"
Submitted by admin on 2011, October 8, 10:29 AM
1、安装yum的fpmforge源
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm2、
安装mencoeder、ffmpeg、flvtool2、yamdi等
yum install libgcc gcc gcc-c++ libstdc++ libstdc++-devel compat-glibc compat-libstdc++-33 libevent libevent-devel
yum install ffmpeg ffmpeg-devel mplayer mencoder flvtool2 yamdi3
执行编码的参数
mencoder /root/1.rmvb -o /root/2.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=480:-3 -ofps 12 -srate 220504、为flv增加关键帧
flvtool2 -U 2.flv
或
yamdi -i 2.flv -o 3.flv //注意添加了关键帧的视频为3.flv