前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ffmpeg-1:linux下音视屏处理工具ffmpeg部署

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

作者头像
千里行走
发布2019-07-03 17:53:42
2K0
发布2019-07-03 17:53:42
举报
文章被收录于专栏:千里行走

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千里行走 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
媒体处理
媒体处理(Media Processing Service,MPS)是智能、强大、全面的多媒体数据处理服务,行业支持最全面的音视频编码标准,基于自研编码内核和AI算法,提供音视频转码和增强、媒体智能、质检评测等能力,帮助您提升媒体质量、降低成本,满足各类场景的音视频处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档