知識點:在使用vcastr3.swf播放器播放flv視頻,(同時在html5頁面,使用《video》標籤時),發現某些MP4格式的代碼不能播放html
緣由:vcastr3.swf和video,不支持mpeg4編碼格式的MP4視頻播放html5
參考:http://www.runoob.com/html/html5-video.html (video標籤)java
https://www.cnblogs.com/frost-yen/p/5848781.html (ffmpeg經常使用命令)linux
https://blog.csdn.net/daidaineteasy/article/details/53861429 (html使用vcastr3.swf播放器播放flv視頻)ide
https://www.cnblogs.com/ghlin/articles/8202842.html (linux下java使用ffmpeg將MP4視頻轉爲H264編碼)工具
解決方案:1:後臺獲取編碼格式給用戶,不容許上傳編碼
2:利用ffmpeg工具,將mpeg4轉化h264格式的視頻文件spa
方案2代碼:.net
配置ffmpeg環境變量之後,可以使用命令直接轉換編碼方式code
視頻編碼格式轉換
好比一個視頻的編碼是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(); } }