ffmpeg-1:linux下音视屏处理工具ffmpeg部署

ffmpeg主要用于音视频转码,以及增删水印等处理,是一款简单实用且强大的音视频处理工具。

前置需要安装nasm和x264。

nasm:是一个为可移植性与模块化而设计的一个80x86的汇编器。它支持相当多

的目标文件格式

X264:x264是采用GPL授权的视频编码自由软件。x264的主要功能在于进行H.264/MPEG-4 AVC的视频编码,而不是作为解码器(decoder)之用。

X264非常重用,比如笔者在去除水印的生产实践中,如果不使用x264,去除水印后的文件大小是原文件的2倍;但是如果使用x264编码,只比原文件增加不到10%的大小,差异非常明显,尤其对于视频类业务,可以大量节约带宽成本。

目录

(1).nasm安装

(2).x264安装

(3).ffmpeg下载与部署

(4).参考资料

正文

(1).nasm安装

为了编译x264。

vim /etc/yum.repos.d/nasm.repo,写入:

[NASM]

name = Netwide Assembler

baseURL=http://www.nasm.us/pub/nasm/stable/linux/

启用= 1

gpgcheck = 0

[NASM测试]

name = Netwide Assembler(发布候选版本)

baseURL=http://www.nasm.us/pub/nasm/testing/linux/

启用= 0

gpgcheck = 0

[NASM快照]

name = Netwide汇编程序(每日快照构建)

baseURL=http://www.nasm.us/pub/nasm/snapshots/latest/linux/

启用= 0

gpgcheck = 0

yum install nasm

(2).x264安装

为了让ffmpeg使用h264编码。

ffmpeg中自带h264的解码,但是没有包含编码,所以再执行avcodec_find_encoder(CODEC_ID_H264)时返回的结果为NULL,需要额外添加x264支持h264的编码。

官网下载:https://www.videolan.org/developers/x264.html

ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2

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

上边都下载不了,到这里:

https://code.videolan.org/videolan/x264/tree/stable

选择:

wget https://code.videolan.org/videolan/x264/-/archive/stable/x264-stable.tar.gz

编译/部署:

yum install install gcc libc6-dev

./configure --enable-shared --prefix=/app/3rd/x264

make

make install

[root@mysql-monitor-node1 x264-stable]# make install

install -d /app/3rd/x264/bin

install x264 /app/3rd/x264/bin

install -d /app/3rd/x264/include /app/3rd/x264/lib/pkgconfig

install -m 644 ./x264.h x264_config.h /app/3rd/x264/include

install -m 644 x264.pc /app/3rd/x264/lib/pkgconfig

install -d /app/3rd/x264/lib

ln -f -s libx264.so.157 /app/3rd/x264/lib/libx264.so

install -m 755 libx264.so.157 /app/3rd/x264/lib

include和lib目录在ffmpeg编译时要做关联,否则编译ffmpeg启用x264时会报错:ERROR: libx264 not found

(3).ffmpeg下载与部署

官网下载:http://ffmpeg.org/download.html

wget https://ffmpeg.org/releases/ffmpeg-4.1.3.tar.bz2

解压:

bzip2 -d ffmpeg-4.1.3.tar.bz2

tar -xvf ffmpeg-4.1.3.tar

编译:./configure --enable-shared --prefix=/app/3rd/ffmpeg-4.1.3

直接编译提示:nasm/yasm not found or too old。

可以使用--disable-yasm禁用这个选项编译,yasm是一款汇编器,并且是完全重写了nasm的汇编环境,接收nasm和gas语法,支持x86和amd64指令集,所以这里安装一下yasm即可;

安装yasm:yum install yasm

再次编译:

./configure --enable-shared --prefix=/app/3rd/ffmpeg-4.1.3

make & make install

我们增加/去除水印使用delogo过滤器,所以编译是要加gpl过滤器:–enable-gpl,完整命令如下:

./configure --enable-shared --enable-gpl --prefix=/app/3rd/ffmpeg-4.1.3

否则使用ffmpeg的delogo过滤器时会报错:

为了使用h264编码需要增加参数,增加后为:

./configure --enable-shared --enable-gpl --enable-libx264 --enable-decoder=h264 --enable-encoder=libx264 --enable-static --extra-cflags=-I/app/3rd/x264/include --extra-ldflags=-L/app/3rd/x264/lib --prefix=/app/3rd/ffmpeg-4.1.3

修改文件/etc/ld.so.conf,将x264的lib加入文件,最终形式为:

include /etc/ld.so.conf.d/*.conf

/app/3rd/x264/lib

/app/3rd/ffmpeg-4.1.3/lib

然后执行命令使其生效:ldconfig

功能描述我们是否使用

–enable-gpl水印delogo过滤器要用到。Y

--enable-libopenh264视频h264编码要用到。Y

(4).参考资料

1.使用ffmpeg增删水印

http://www.voidcn.com/article/p-qhzhprrs-brx.html

2.Linux环境ffmpeg以及相应解码器安装

https://www.jianshu.com/p/277fc2300f1e

3.linux下安装ffmpeg

https://www.cnblogs.com/freeweb/p/6897907.html

4.编译ffmpeg并支持H264

https://blog.csdn.net/SerenityMoon/article/details/52174437

5.nasm安装

https://blog.csdn.net/lwhsyit/article/details/85334180

6.Java调用FFmpeg进行视频处理及Builder设计模式的应用

https://www.cnblogs.com/deng-cc/p/10123069.html

本文分享自微信公众号 - 千里行走(a_thousands_of_miles)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券