ffmpeg 0.8.2编译、迁移及水印测试

简介:

 

一、 ffmpeg 0.8.2 编译
由于对linux 系统的熟悉程度不够,近段时间编译ffmpeg 0.8.2 时遇到了很大的麻烦,在不停地查资料,不停地重试之后,我终于搞定了这个让我头疼的编译问题,现在将我的编译方法和大家分享一下,希望对大家有用:

 

1、 下载debian-multimedia-keyring_2010.12.26_all.deb包,执行:

 

dpkg -i debian-multimedia-keyring_2010.12.26_all.deb

 

 
2、  将下面的代码加到文件/etc/apt/sources.list

 

## Debian Multimedia squeeze:

 

deb http://www.debian-multimedia.org squeeze main non-free

 

deb-src http://www.debian-multimedia.org squeeze main non-free

 

 
3、  开始安装编译需要的lib

 

apt-get update
apt-get install subversion frei0r-plugins-dev libdc1394-22-dev libfaac-dev libmp3lame-dev libx264-dev libdirac-dev libxvidcore-dev libfreetype6-dev libvorbis-dev libgsm1-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenjpeg-dev libschroedinger-dev libspeex-dev libtheora-dev libva-dev
 
4、  进入ffmpeg 0.8.2 目录
./configure --prefix=/opt/ffmpeg --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-x11grab --enable-swscale --enable-version3 --enable-shared --disable-yasm --enable-filter=movie --enable-frei0r --enable-libdc1394 --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-libdirac --enable-libxvid --enable-libfreetype --enable-libvorbis --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora
之前试过好多种编译的方式,编译完成后视频/ 音频的转换都没有问题,测试一下水印,发现水印能加上,但是水印的效果相当差。重新编译发现上面参数中:--enable-filter=movie --enable-frei0r 两个参数很重要,顺利编译上这两个参数之后,水印也就正常地加上了。
不知道什么原因,我到这步的时候总是出现一个警告信息,上网查了一下,原来是系统时间不对,检查一下我的时间居然和现在差着三个月,怪不得过不去,于是进行系统对时:
chkconfig time on
ntpdate 210.72.145.44
顺利通过后:
make
make install
 
编译完成,执行:/opt/ffmpeg/bin/ffmpeg ,大功告成!
 
二、编译包的迁移
将编译包copy 到没有安装过ffmpeg 得服务器上之后运行时会出现与这样类似的错误提示:
error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory
这个提示很清晰,就是找不到lib 文件,原因是在编译ffmpeg 的服务器上我们使用apt-get install 装了一些包,这些包默认装到/usr/lib 目录下,而迁移之后的服务器上没有这些需要的包,所以出现以上类似的提示。
解决办法:将这些文件复制到新的服务器里相应的文件夹下,如复制到/opt/ffmpeg/lib 中(如果是文件复制,不是整个lib 文件夹复制,复制的是要用命令:cp -d )。
然后,在vi /etc/ld.so.conf 文件中第一行加入:/opt/ffmpeg/lib ,保存退出。
执行:ldconfig
这样再去运行ffmpeg 的时候就能正常使用了。
 
三、视频加水印
顺便给大家一个ffmpeg 0.8.2 加透明水印的命令示例:
ffmpeg -i moviegs.mp4 -vf "movie=logo.png [logo]; [in][logo] overlay=(main_w-overlay_w)/2:main_h-overlay_h:1 [out]" 888.flv
其中:
-vf 命令为添加水印
Overlay= ……,这个是定义水印的位置,第一个参数水印图片的x 坐标,第二个参数为y 坐标,main_w-overlay_w 这个参数代表水印加在视频最右端,以此类推main_h-overlay_h 代表水印加到视频最底部。
举两个例子:
overlay=10:10:1 将水印加在视频左上角
overlay=10:main_h-overlay_h:1 将水印加在视频左下角
overlay=main_w-overlay_w:10:1 将水印加在视频右上角

   overlay=main_w-overlay_w:main_h-overlay_h:1将水印加在视频右下角





本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/748626,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
Kubernetes NoSQL 网络协议
VS2017编译TarsCpp测试工程
VS2017编译TarsCpp测试工程
|
3月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
78 0
|
3月前
|
算法 异构计算 索引
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
45 1
|
7月前
|
C++ Windows
FFmpeg入门及编译 3
FFmpeg入门及编译
54 0
|
7月前
|
编解码 API 开发工具
FFmpeg入门及编译 1
FFmpeg入门及编译
97 0
|
1月前
|
算法
m基于OFDM+QPSK和LDPC编译码以及MMSE信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试
MATLAB2022a仿真实现了无线图像传输的算法,包括OFDM、QPSK调制、LDPC编码和MMSE信道估计。OFDM抗频率选择性衰落,QPSK用相位表示二进制,LDPC码用于前向纠错,MMSE估计信道响应。算法流程涉及编码、调制、信道估计、均衡、解码和图像重建。MATLAB代码展示了从串行数据到OFDM信号的生成,经过信道模型、噪声添加,再到接收端的信道估计和解码过程,最终计算误码率。
22 1
|
1月前
|
算法 异构计算
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
15 0
|
25天前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
12 0
|
1月前
|
资源调度 算法
m基于OFDM+QPSK和LDPC编译码以及LS信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试
m基于OFDM+QPSK和LDPC编译码以及LS信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试
26 2
|
7月前
|
API C语言 C++
FFmpeg入门及编译 2
FFmpeg入门及编译
81 0

热门文章

最新文章