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,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
95 0
|
7月前
|
算法
m基于OFDM+QPSK和LDPC编译码以及MMSE信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试
MATLAB2022a仿真实现了无线图像传输的算法,包括OFDM、QPSK调制、LDPC编码和MMSE信道估计。OFDM抗频率选择性衰落,QPSK用相位表示二进制,LDPC码用于前向纠错,MMSE估计信道响应。算法流程涉及编码、调制、信道估计、均衡、解码和图像重建。MATLAB代码展示了从串行数据到OFDM信号的生成,经过信道模型、噪声添加,再到接收端的信道估计和解码过程,最终计算误码率。
79 1
|
2月前
|
缓存 并行计算 Ubuntu
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
本文是关于在Jetson AGX Xavier上编译FFmpeg(3.4.1)和OpenCV(3.4.0)的详细教程,包括编译需求、步骤、测试和可能遇到的问题及其解决方案。还提供了Jetson AGX Xavier编译CUDA版本的OpenCV 4.5.0的相关信息。
78 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
181 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
2月前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
131 1
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
106 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度
|
7月前
|
Linux
Linux编译FFmpeg
Linux编译FFmpeg
149 0
|
4月前
|
测试技术 开发工具 Python
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
189 0
|
7月前
|
算法 异构计算
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
68 0