关于视频文件上传,服务器自动切片解决


程序运行环境:lnamp

centos 6.8 nginx 1.6 apache 2.4 mysql 5.5 php 5.6

遇到问题:

1,js 上传文件,由于文件服务器不是本地服务器,单独配置的文件服务器,js 跨域问题解决

2,视频上传限制修改 centos 上修改起来简单,只需要修改php.ini 

upload_max_filesize = 4000m
post_max_size = 4000m

重启服务 生效解决。

windows server 上 IIS 要修改限制,另外还有站点文件权限问题。头痛的事情挺多。如果是windows有问题可以发过来看下

3,php视频切片


开始:

下载调试 上传视频js ,我这里用的是github 上的 jquery fileupload

插件下载地址:https://github.com/blueimp/jQuery-File-Upload/

功能强大,解决路径引用问题就可以使用:

image.png

image.png

配置上传文件URL地址,设置最大上传限制,文件类型,文件上传成功回调。


2,Centos视频切片

安装ffmpeg

    1,先安装依赖 yasm

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0./configure
make
make install

    2,安装 ffmpeg

wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gztar -zxvf ffmpeg-3.1.tar.gz
cd ffmpeg-3.1./configure
make
make install

安装成功 

[root@iZ25o0ipjpmZ ~]# ffmpeg --version
ffmpeg version 3.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)
  configuration: 
  libavutil      55. 27.100 / 55. 27.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 40.101 / 57. 40.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 46.102 /  6. 46.102
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
Unrecognized option '-version'.
Error splitting the argument list: Option not found
[root@iZ25o0ipjpmZ ~]#

不废话了直接上切片处理代码:

转码 >>mp4

if(PHP_OS == 'WINNT'){
    $cmd = $_SERVER['DOCUMENT_ROOT']."/ffmpeg.exe -i ".$file_path." -y -vcodec copy ".$new_file_path;
}else{
    $cmd = "ffmpeg -i ".$file_path." -y -vcodec copy ".$new_file_path;
}

切片 自动截视频封面

if(PHP_OS == 'WINNT'){
    $cmd_ts = $_SERVER['DOCUMENT_ROOT']."/ffmpeg.exe -i ".$file_path." -c: copy -f segment -segment_list ".$new_path.".m3u8 -segment_time 1 ".$new_path."%03d.ts";
    $cmd_thumb = $_SERVER['DOCUMENT_ROOT']."/ffmpeg.exe -i ".$file_path." -ss 00:00:05 -f image2 ".$thumbs;
}else{
    $cmd_ts = "ffmpeg -i ".$file_path." -c: copy -f segment -segment_list ".$new_path.".m3u8 -segment_time 1 ".$new_path."%03d.ts";
    $cmd_thumb = "ffmpeg -i ".$file_path." -ss 00:00:05 -f image2 ".$thumbs;
}

WINNT 判断是否为windows服务器


如果服务器环境没问题的话,基本上就这样搞定了。

上一篇 下一篇

评论



分享

热门文章

最新加入

最新评论

ss就这样吧: 还是用原声的写吧,这样就不会出现兼容性的问题了 。 查看原文 05月25日 15:55
指尖: 数据库主从配置 查看原文 03月03日 11:26




kefu
0.0550s