• +86 18940128339
  • 3056844889@qq.com

Category Archive Centos

ffmpeg安装 实现mp4转m3u8

自行选定 安装目录 我用的是 /data/ 目录

1.下载&安装nasm

# 下载
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz

# 解压
tar xvf nasm-2.14.tar.gz

# 进入目录
cd nasm-2.14

# 配置
./configure

# 编译&&安装
make && make install

2.下载&安装x264

# 下载
git clone https://code.videolan.org/videolan/x264.git

# 进入目录
cd x264

# 配置
./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared

# 编译&&安装
make && make install

3.下载&安装 ffmpeg

# 下载
wget http://www.ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz

# 解压
tar xvJf ffmpeg-4.3.1.tar.xz

# 进入目录
cd ffmpeg-4.3.1

#配置
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared  --enable-libx264

# 编译&&安装(这里耗时较长,20分钟+)
make && make install

配置时遇到的问题

在配置结束时,可能会出现类似提示:WARNING: using libx264 without pkg-config。

解决方案

编辑~/.bashrc文件,添加:

vi /.bashrc
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
#保存后使设置生效
source ~/.bashrc
测试ffmpeg
# 进入ffmpeg安装目录,这个目录是与ffmpeg配置时的--prefix参数对应的
cd /usr/local/ffmpeg/bin
# 执行
./ffmpeg
大概率出现以下提示
./ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
解决方案:
vi /etc/ld.so.conf

#已有
include ld.so.conf.d/*.conf
# 追加内容
/usr/local/ffmpeg/lib
/usr/local/lib

# 保存后执行
ldconfig

执行ffmpeg命令

测试视频切片

创建video文件夹 在video中创建hls文件夹 上传一个index.mp4 视频 执行下面命令

ffmpeg -i index.mp4 -hls_time 10 -hls_list_size 0
-hls_segment_filename ./hls/index_%05d.ts ./hls/index.m3u8

参数说明:

-i test.mp4:指定要处理的视频文件。
-hls_time 10:指定每个切片的时间为10秒。
-hls_list_size 0:切片列表限制,无限制。
-hls_segment_filename ./hls/index_%05d.ts:自定义切片的文件名,这里会生成类似:index_00001.ts的视频文件。
./hls/index.m3u8:保存切片信息的m3u8文件

添加环境变量

#编辑
vi .bash_profile
#添加内容并保存
export PATH=/usr/local/ffmpeg/bin:$PATH
#更新配置
 source ~/.bash_profile

SVN安装 使用

采用yum安装方式:

1、rpm -qa subversion //检查是否安装了低版本的SVN

2、yum remove subversion //如果存储旧版本,卸载旧版本SVN

3、开始安装yum -y install subversion

安装好后查看版本svnserve –version

4、创建版本仓库:

mkdir -p /data/svn/myproject                                
svnadmin create /data/svn/myproject/

查看/data/svn/myproject 文件夹可以发现有conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

5、配置权限

cd /data/svn/myproject/conf/            //进入配置目录

vim svnserve.conf                    //编辑配置文件,加入下面五行内容

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/svn/myproject

6、编辑密码文件,添加用户admin密码123456:

vim passwd  

localuser = 123456
defaultuser = 123456

7、编辑权限文件,添加用户test权限

vim authz

[groups]
root = defaultuser 
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
[/]
@root = rw
localuser = rw

8.启动SVN

# svn端口默认是3690 这里使用10102
svnserve -d  --listen-port 10102  -r  /data/svn/   

二、给svn添加钩子同步文件到PHP测试环境 (这里PHP项目目录为/var/www/html/project/)

1、进入版本库下的hooks目录

cd /data/svn/hooks/

2、将post-commit.tmpl 复制为 post-commit

cp post-commit.tmpl post-commit

给post-commit可执行权限

chmod 0777 post-commit

4、编辑post-commit,注释掉#mailer.py……这一行,添加下面四行,编码问题,如果错误的话可能导致无法同步 成功,可选的有en_US.UTF-8、zh_CN.UTF-8、zh_CN.GB2312,可以一个个试。

vi post-commit

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
export LC_ALL=en_US.UTF-8
SVN=/usr/bin/svn
STATIC_DIR=/www/wwwroot/
${SVN} update  ${STATIC_DIR} --username "localuser" --password "123456"

5、在提交之前,进行一次checkout代码到指定目录

svn checkout svn://localhost/ /www/wwwroot/
5、查看 关闭进程 
ps -aux | grep svnserve
 kill -9 端口号

三.设置开机启动

查看服务 ps aux|grep svnserve

查看 pid下面会用到 pidof svnserve

打开 svnserve.pid 添加上面的pid

vi /run/svnserve/svnserve.pid
cat svnserve.pid

编辑 svnserve.service 替换ExecStart内容

vim  /lib/systemd/system/svnserve.service
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -d --listen-port 10102 -r /data/svn

svnserve.service 服务

systemctl enable svnserve.service #开机自启
systemctl start svnserve.service #启动服务
systemctl stop svnserve.service #停止服务
systemctl status svnserve.service #停止服务