昨天新买了一个MP4,想把电脑上的视频放到MP4里播放,原视频文件比特率太高,播放很卡。
决定用mencoder压缩,但是Ubuntu下没有图形界面,找了一篇命令行操作的,比较全,
参考文章:http://www.linuxidc.com/Linux/2009-02/18303.htm
压缩命令行操作没有问题,但是视频文件比较多,所以想写一个脚本,网上搜索
- #!/bin/bash
- find . -type f \( -name “*.mpg” -o -name “*.mpeg” \)|while read line;do
- echo $line
- mencoder $line -o ${line}.MP4 -oac MP3lame -ovc x264 -of lavf -vf lavcdeint
反复测试不行,感觉do应该有结束的语句,但是网上N篇文章都是这样,自己对脚本又一无所知,只好从看教程,最后查到结束语句是done。 下面是我修改好的脚本: #!/bin/sh find . -type f \( -name "*.mpg" -o -name "*.mpeg" \)|while read line;do name=${line##*/} name=${name%.mpg} Folder2=${line%/*} Folder="./480*272"${Folder2#.} filename=$Folder"/s"$name".mp4" mkdir -p $Folder mencoder $line -o $filename -vf scale=480:272 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=112 done 1,文件压缩主要改了分辨率和视频比特率,适合在MP4上播放。 2,输出的文件名前加 s ,修改了后缀名并输出到新的文件夹,以区分原文件。 3,把上面的文件保存好以后,添加执行权限,放到视频文件所在的文件夹,支持子目录,执行就可以了。 ==================================== 加一段 mpg用mencoder转swf(flv)的代码 mencoder -forceidx -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=1000:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=640:480 -o test.swf a.mpg