FFMpeg转码由此得到的mp4文件中, meta信息是在文件尾部的, 而 videoview 在没有得到meta信息前不会播放文件, 因此只有等到文件完全下载完视频才会播放. 因此可以使用qt-faststart来把meta信息移到文件头部.
首先需要下载一个qt-faststart
下载地址:http://www.ckplayer.com/down/qt-faststart.rar
下载下来解压得到qt-faststart.exe放到d:ffmpeg/bin/下面
运行命令:qt-faststart.exe d:/1.mp4 d:/2.mp4
最后出来的这个2.mp4就是成功的了。可以边下载边播放
Process p=Runtime.getRuntime().exec("cmd /c D://ffmpeg-20180310-2536bd8-win64-static/bin/qt-faststart.exe " + iurl + " " + request.getSession().getServletContext().getRealPath(videoRealPath)+"1.mp4");
p.waitFor();
File file3 = new File(iurl);
file3.delete();
File file2 = new File(request.getSession().getServletContext().getRealPath(videoRealPath)+"1.mp4");
boolean renameTo = file2.renameTo(new File(iurl));
System.out.print(renameTo);
执行完cmd命令后删除源文件,更改文件名等..
后来看到ckplayer他们网站帮助手册 :http://www.ckplayer.com/tool/help/71.htm