在网上找了一圈,都没找到什么好办法,最后偶然看到工具使用的ffmpeg,跟踪分析后,发现可以用批处理解决

  1. 下载ffmpeg
    传送门
  2. 进入ffmpeg文件夹目录
    执行下面的批处理

      ffmpeg.exe -threads 0 -i "http:/xxx.m3u8" -c copy -bsf:a aac_adtstoasc "xx.mp4"
       //备注:命令中的 xxx都替换为自己实际的URL和实际的文件名
  3. 执行完毕后,目录下会多出来一个xxxx.mp4文件, enjoy吧

  1. 卸载掉原先的Yum

    rpm -qa | grep yum | xargs rpm -e --nodeps
    rpm -qa |grep python-urlgrabber|xargs rpm -e --nodeps
  2. 下载新的Yum

    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
  3. 安装包

    rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
    rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
    rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
    rpm -ivh yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm yum-3.2.29-73.el6.centos.noarch.rpm
    注意:yum的包最好一起安装,是有依赖的
  4. 更改源地址

    cd /etc/yum.repos.d/
    mv rhel-source.repo rhel-source.repo_bak
    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    mv CentOS6-Base-163.repo CentOS-Base.repo
    sed -i "s;\$releasever;6;g" CentOS-Base.repo
  5. 愉快的Yum update

方法. 添加Web.xml参数

在Servlet项中添加:

<init-param>
   <param-name>useFileMappedBuffer</param-name>
   <param-value>false</param-value>
 </init-param>

方法. 在jetty.xml中添加

<init-param>  
  <param-name>useFileMappedBuffer</param-name>
  <param-value>false</param-value>
</init-param>

两种方法针对不同jetty运行模式.