知識點:在使用vcastr3.swf播放器播放flv視頻,(同時在html5頁面,使用《video》標簽時),發現某些MP4格式的代碼不能播放
原因:vcastr3.swf和video,不支持mpeg4編碼格式的MP4視頻播放
參考:http://www.runoob.com/html/html5-video.html (video標簽)
https://www.cnblogs.com/frost-yen/p/5848781.html (ffmpeg常用命令)
https://blog.csdn.net/daidaineteasy/article/details/53861429 (html使用vcastr3.swf播放器播放flv視頻)
https://www.cnblogs.com/ghlin/articles/8202842.html (linux下java使用ffmpeg將MP4視頻轉為H264編碼)
解決方案:1:后台獲取編碼格式給用戶,不允許上傳
2:利用ffmpeg工具,將mpeg4轉化h264格式的視頻文件
方案2代碼:
配置ffmpeg環境變量以后,可使用命令直接轉換編碼方式
視頻編碼格式轉換
比如一個視頻的編碼是MPEG4,想用H264編碼,咋辦?
ffmpeg -i input.mp4 -vcodec h264 output.mp4 //
input.mp4
是指要轉換視頻的地址;output.mp4是轉化后視頻的存放路徑
相反也一樣
ffmpeg -i input.mp4 -vcodec mpeg4 output.mp4
java代碼實現視頻編碼格式轉換
private void transfer(String infile,String outfile) {
String videoCommend = "ffmpeg -i " + infile + " -vcodec libx264 -r 29.97 -b 768k -ar 24000 -ab 64k -s 1280x720 "
+ outfile;
try {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(videoCommend);
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
System.out.println(line);
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t) {
t.printStackTrace();
}
}