ffmpeg+水印效果走过的一些坑

简介:

Linux version 2.6.18-371.3.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54))

默认安装的0.6.5版本,无法使用水印效果

=======================================================

ffmpeg组件0.9.1版本

单个图片,测试成功

ffmpeg -i boss.flv -vf "movie=left.png [watermark]; [in][watermark] overlay=10:10" output.mp4

单个色块,测试成功

ffmpeg -i boss.flv -strict -2 -vf "color=gray@0.6:100x30 [c]; [in][c] overlay=main_w-110:10" right.mp4

单个图片+色块 测试(成功,但只能生效图片)

ffmpeg -i boss.flv -vf "movie=left.png [watermark]; [in][watermark] overlay=10:10;color=gray@1:100x30 [c]; [in][c] overlay=main_w-110:10" output111.mp4

单个图片(另一种语法),测试失败

ffmpeg -i boss.flv -i left.png -filter_complex overlay=main_w-overlay_w-10:main_h-overlay_h-10 output.mp4

多个图片,测试失败

转码+水印(包含单个色块),测试成功

ffmpeg -y -i in.flv -strict -2 -vf "color=gray@1:100x30 [c]; [in][c] overlay=main_w-110:10" -acodec libfaac -ab 64k -ar 44100 -vcodec libx264 -r 25 -level 30 -b 400k -maxrate 466k -minrate 288k -flags +loop -cmp 256 -partitions +parti4x4+parti8x8 -deblockalpha 2 -deblockbeta 1 -qcomp 0.6 -me_method 8 -subq 8 -trellis 1 -refs 3 -bf 2 -coder 1 -me_range 36 -g 250 -qmin 5 -qmax 38 -qdiff 4 -qscale 4.00 -qblur 0.5 -qcomp 0.5 -i_qfactor 0.5 -bufsize 1048k -threads 6 out.mp4

======================================================

ffmpeg组件1.2.1版本

单个图片(两种语法),测试成功

ffmpeg -i boss.flv -vf "movie=left.png [watermark]; [in][watermark] overlay=10:10" output.mp4

ffmpeg -i boss.flv -i left.png -filter_complex overlay=main_w-overlay_w-10:main_h-overlay_h-10 output.mp4

两块图片(可同一图片,不同位置),测试成功

ffmpeg -i boss.flv -i left.png -i left.png -filter_complex "overlay=5:5,overlay=x=W-w:y=5" left1.mp4

单个色块(注意语法和上面版本不一样),测试成功

ffmpeg -i boss.flv -vf "color=color=red@.3:size=100x30 [over]; [in][over] overlay=5:5" right.mp4

单个图片+单个色块 测试(成功,但只能生效图片的遮标,色块的遮标生效不了)

ffmpeg -i boss.flv -i left.png -filter_complex "overlay=x=W-w:y=5" -vf "color=color=red@.3:size=100x30 [over]; [in][over] overlay=5:5" output.mp4

单个色块两个位置,测试失败

ffmpeg -i boss.flv -vf "color=color=red@.3:size=100x30 [over]; [in][over] overlay=main_w-110:10,overlay=10:10" right.mp4

转码+遮标两块图片,测试成功(这里的语法和上述版本也有不一样处)

ffmpeg -y -i in.flv -i left.png -i left.png -filter_complex "overlay=5:5,overlay=x=W-w:y=5" -acodec libfaac -ab 64k -ar 44100 -vcodec libx264 -r 25 -level 30 -b 400k -maxrate 466k -minrate 288k -flags +loop -cmp 256 -partitions +parti4x4+parti8x8 -qcomp 0.6 -me_method 8 -subq 8 -trellis 1 -refs 3 -bf 2 -coder 1 -me_range 36 -g 250 -qmin 5 -qmax 38 -qdiff 4 -qscale 4.00 -qblur 0.5 -qcomp 0.5 -i_qfactor 0.5 -bufsize 1048k -threads 6 out.mp4

总结:ffmpeg的兼容性不太好,如要使用特别要测试版本和官方文档的语法对照。






本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/1529739,如需转载请自行联系原作者
目录
相关文章
|
编解码 API 数据安全/隐私保护
FFmpeg中overlay滤镜用法-水印及画中画
overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛,常见的例子有,电视屏幕右上角显示的电视台台标,以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口,两个窗口不同的视频内容同时播放。
2075 0
FFmpeg中overlay滤镜用法-水印及画中画
|
3月前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
265 1
|
数据安全/隐私保护
FFMPEG音视频开发: 添加图片水印
FFMPEG音视频开发: 添加图片水印
279 0
FFMPEG音视频开发: 添加图片水印
|
Ubuntu 数据安全/隐私保护
FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印
FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印
503 0
FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印
|
数据安全/隐私保护 Linux
|
数据安全/隐私保护 编解码
FFMPEG 最简滤镜filter使用实例(实现视频缩放,裁剪,水印等)
FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字符,然后从终端输出。我在该实例的基础上稍微的做了修改,使它能够保存滤镜处理过后的文件。在上代码之前先明白几个概念:     Filter:代表单个filter     FilterPad:代表一个filter的输入或...
2755 0
|
开发工具 数据安全/隐私保护
【FFMpeg视频开发与应用基础】七、 调用FFMpeg SDK实现视频水印
《FFMpeg视频开发与应用基础——使用FFMpeg工具与SDK》视频教程已经在“CSDN学院”上线,视频中包含了从0开始逐行代码实现FFMpeg视频开发的过程,欢迎观看!链接地址:FFMpeg视频开发与应用基础——使用FFMpeg工具与SDK Github工程代码地址:FFmpeg_Tutorial 视频的水印通常指附加在原始视频上的可见或者不可见的,与原始视频无直接关联的标识。
1503 0
|
3月前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
350 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
3月前
|
编解码 语音技术 内存技术
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
《FFmpeg开发实战:从零基础到短视频上线》一书中的“5.1.2 把音频流保存为PCM文件”章节介绍了将媒体文件中的音频流转换为原始PCM音频的方法。示例代码直接保存解码后的PCM数据,保留了原始音频的采样频率、声道数量和采样位数。但在实际应用中,有时需要特定规格的PCM音频。例如,某些语音识别引擎仅接受16位PCM数据,而标准MP3音频通常采用32位采样,因此需将32位MP3音频转换为16位PCM音频。
118 0
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
|
3月前
|
XML 开发工具 Android开发
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
ExoPlayer最初是为了解决Android早期MediaPlayer控件对网络视频兼容性差的问题而推出的。现在,Android官方已将其升级并纳入Jetpack的Media3库,使其成为音视频操作的统一引擎。新版ExoPlayer支持多种协议,解决了设备和系统碎片化问题,可在整个Android生态中一致运行。通过修改`build.gradle`文件、布局文件及Activity代码,并添加必要的权限,即可集成并使用ExoPlayer进行网络视频播放。具体步骤包括引入依赖库、配置播放界面、编写播放逻辑以及添加互联网访问权限。
243 1
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频

热门文章

最新文章