java多线程视频转码_java 后台视频转码、压缩工具
采用FFmpeg進(jìn)行轉(zhuǎn)碼壓縮
調(diào)優(yōu)參數(shù)有:
-c:v 音頻編碼
-b:v 視頻碼率(比特率越小轉(zhuǎn)的越快(在window文件夾下可以看到比特率(1024最為合適)))
-r 30 (幀率)
-vf scale=1280:-1 1280寬,-1自適應(yīng)
public static void main(String[] args) throws Exception {
String videoFileName = "202008211114570592191682054809714939.webm";
/*
* ffmpeg -i -c:v libx264 -b:v 2048k -vf scale=1280:-1 -y
* -threads 3 -preset ultrafast 開啟多線程轉(zhuǎn)碼
* -c:v 音頻編碼,-b:v 視頻碼率(比特率越小轉(zhuǎn)的越快),-r 30 (幀率), -vf scale=1280:-1 1280寬,-1自適應(yīng),
*/
StringBuffer sp = new StringBuffer();
sp.append("D:\\ffmpeg\\bin\\ffmpeg -i ");
sp.append("D:\\temp\\VID_20200821_141412.mp4 ");
sp.append("-c:v libx264 -b:v 1024k -r 28 -threads 2 -preset ultrafast -vf scale=720:-1 -y ");
sp.append("D:\\temp\\"+ "123456.mp4");
long st = System.currentTimeMillis();
Process proc = Runtime.getRuntime().exec(sp.toString());
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null) { //必須讀流,不然就會(huì)阻塞
}
int exitVal = proc.waitFor();
log.info("壓縮視頻 前大小:{}KB 用時(shí):{} 后大小:{}KB",
new File("D:\\temp\\VID_20200821_141412.mp4 ").length()/1024,System.currentTimeMillis() - st,
new File("D:\\temp\\"+ "123456.mp4").length()/1024);
}
總結(jié)
以上是生活随笔為你收集整理的java多线程视频转码_java 后台视频转码、压缩工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么我们买了股票就不涨被套,股票割肉就
- 下一篇: C语言基础丨运算符之条件运算符(七)