ffmpeg 转换flv压缩大小_使用ffmpeg进行视频文件转换成FLV整理
1、首先下載ffmpeg(附件即是)
2、將解壓得到的ffmpeg.exe和pthreadGC2.dll文件解壓到任何目錄(當然也可以是WebRoot中的目錄)
3、創建bat文件convertVideo.bat并添加以下內容:(參數說明見附錄一)
Txt代碼
%1\ffmpeg?-i?%2-y?-ab56-ar22050-b500-r15-s320*240%3
exit%1\ffmpeg -i %2 -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 %3
exit
******************
%1為ffmpeg存放目錄
%2為需要轉換的文件路徑
%3為FLV文件輸出目錄
******************
同樣需要注意的是bat文件存放的路徑不能包含空格
也可以對視頻進行截取縮略圖哦:)
Txt代碼
【轉換文件格式的同時抓縮微圖】
ffmpeg?-i"test.avi"-y?-f?p_w_picpath2?-ss8-t0.001-s?350x240"test.jpg"
【對已有flv抓圖】
ffmpeg?-i"test.flv"-y?-f?p_w_picpath2?-ss8-t0.001-s?350x240"test.jpg"
****************
-ss后跟的時間單位為秒
****************【轉換文件格式的同時抓縮微圖】
ffmpeg -i "test.avi" -y -f p_w_picpath2 -ss 8 -t 0.001 -s 350x240 "test.jpg"
【對已有flv抓圖】
ffmpeg -i "test.flv" -y -f p_w_picpath2 -ss 8 -t 0.001 -s 350x240 "test.jpg"
****************
-ss后跟的時間單位為秒
****************
4、創建類
Java代碼
publicclassConvertVideo
{
privatestaticString?INPUT_PATH;
privatestaticString?OUTPUT_PATH;
privatestaticString?PROJECT_PATH;
privatestaticHashMap?fileType;
static
{
fileType?=newHashMap();
fileType.put("avi","true");
fileType.put("mpg","true");
fileType.put("wmv","true");
fileType.put("3gp","true");
fileType.put("mov","true");
fileType.put("mp4","true");
fileType.put("asf","true");
fileType.put("asx","true");
fileType.put("flv","true");
}
publicstaticvoidconvertToFLV(String?projectPath,?String?inputFile,?String?outputFile)
{
INPUT_PATH?=?inputFile;
OUTPUT_PATH?=?outputFile;
PROJECT_PATH?=?projectPath;
if(checkContentType())
processFLV();//?直接將文件轉為flv文件
}
privatestaticbooleancheckContentType()
{
String?type?=?INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".")?+1,?INPUT_PATH.length()).toLowerCase();
//?ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
return"true".equals(fileType.get(type));
}
privatestaticvoidprocessFLV()
{
if(newFile(INPUT_PATH).isFile())
{
try
{
String?cmd?="cmd?/c?start?X:\\ffmpeg.bat?\""+?PROJECT_PATH?+"\"?\""+?INPUT_PATH?+"\"?\""+?OUTPUT_PATH?+"\"";
Runtime.getRuntime().exec(cmd);
}
catch(Exception?e)
{
e.printStackTrace();
}
}
}
}public class ConvertVideo
{
private static String INPUT_PATH;
private static String OUTPUT_PATH;
private static String PROJECT_PATH;
private static HashMap fileType;
static
{
fileType = new HashMap();
fileType.put("avi", "true");
fileType.put("mpg", "true");
fileType.put("wmv", "true");
fileType.put("3gp", "true");
fileType.put("mov", "true");
fileType.put("mp4", "true");
fileType.put("asf", "true");
fileType.put("asx", "true");
fileType.put("flv", "true");
}
public static void convertToFLV(String projectPath, String inputFile, String outputFile)
{
INPUT_PATH = inputFile;
OUTPUT_PATH = outputFile;
PROJECT_PATH = projectPath;
if (checkContentType())
processFLV();// 直接將文件轉為flv文件
}
private static boolean checkContentType()
{
String type = INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".") + 1, INPUT_PATH.length()).toLowerCase();
// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
return "true".equals(fileType.get(type));
}
private static void processFLV()
{
if (new File(INPUT_PATH).isFile())
{
try
{
String cmd = "cmd /c start X:\\ffmpeg.bat \"" + PROJECT_PATH + "\" \"" + INPUT_PATH + "\" \"" + OUTPUT_PATH +"\"";
Runtime.getRuntime().exec(cmd);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
5、測試代碼
Java代碼
publicstaticvoidmain(String[]?args)
{
ConvertVideo.convertToFLV("X:\\convertVideo","X:\\a.wmv","X:\\a.flv");
}public static void main(String[] args)
{
ConvertVideo.convertToFLV("X:\\convertVideo", "X:\\a.wmv", "X:\\a.flv");
}
6、附一個下載來的flv播放器吧(附件中下載)
Js代碼
varswf_width="100%";
varswf_height="100%";
varfiles='nba.flv';
varconfig='0:自動播放|1:連續播放|100:默認音量|0:控制欄位置|2:控制欄顯示|0x000033:主體顏色|60:主體透明度|0x66ff00:光暈顏色|0xffffff:圖標顏色|0xffffff:文字顏色|:logo文字|:logo地址|:結束swf地址';
vartexts='NBA精彩進球TOP10';
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('"?wmode="opaque"?FlashVars="vcastr_file='+files+'&vcastr_title='+texts+'&vcastr_config='+config+'"?menu="false"?quality="high"?width="'+swf_width+'"?height="'+swf_height+'"?type="application/x-shockwave-flash"?pluginspage="http://www.macromedia.com/go/getflashplayer"?/>');
document.write('');var swf_width="100%";
var swf_height="100%";
var files='nba.flv';
var config='0:自動播放|1:連續播放|100:默認音量|0:控制欄位置|2:控制欄顯示|0x000033:主體顏色|60:主體透明度|0x66ff00:光暈顏色|0xffffff:圖標顏色|0xffffff:文字顏色|:logo文字|:logo地址|:結束swf地址';
var texts='NBA精彩進球TOP10';
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('" wmode="opaque" FlashVars="vcastr_file='+files+'&vcastr_title='+texts+'&vcastr_config='+config+'" menu="false" quality="high" width="'+swf_width+'" height="'+swf_height+'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
document.write('');
【補充說明】如果遇到ffmpeg所涉及以外的視頻格式,可以使用其他轉換工具先轉換,例如mencoder。
附錄一(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 转换flv压缩大小_使用ffmpeg进行视频文件转换成FLV整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【CSDN】图片居中与调整大小
- 下一篇: html5是未来,开始用吧!