FFmpeg开发笔记(七十五)使用qrencode和quirc对视频画面读写二维码

上一篇文章《Windows给FFmpeg集成二维码图像的编解码器》介绍了给FFmpeg集成二维码的编解码器qrencode和quirc,接下来讲解如何利用编码器qrencode向视频画面添加二维码,以及如何利用解码器quirc从视频画面读取二维码。

确保Windows系统已经按照《FFmpeg开发实战:从零基础到短视频上线》第一章"1.3 Windows系统安装FFmpeg"的说明安装配置了MSYS,再打开MSYS的MINGW64控制台,输入以下带qrencode滤镜的ffmpeg命令在seas.mp4的左上角添加二维码,二维码的文本内容由序号、时间戳和当前时间组成。

复制代码
ffmpeg -i seas.mp4 -vf qrencode=x=40:y=40:qrcode_width=main_w/6:text="%{n} %{pts} %{gmtime}" ff_qrencode.mp4

接着运行下面的ffplay命令播放添加了二维码的新视频:

复制代码
ffplay -i ff_qrencode.mp4

新视频的播放界面如下图所示,可见该视频的左上方果然添加了二维码图像。

运行以下帮助命令,可查看qrencode滤镜的详细用法。

复制代码
ffmpeg -h filter=qrencode

根据帮助命令的返回结果,可知qrencode滤镜主要有下列几个常用参数:

x:二维码图像左上角的横坐标。

y:二维码图像左上角的纵坐标。

qrcode_width:二维码图像的宽度,可简写为q。

padded_qrcode_width:二维码图像的留白宽度,可简写为Q。

level:二维码图像的容错等级,可简写为l。为0表示低容错,为1表示中等容错,为2表示默认容错,为3表示高度容错。

foreground_color:二维码图像的前景颜色,可简写为fc。

background_color:二维码图像的背景颜色,可简写为bc。

text:二维码的文本内容。

虽然视频画面加上了二维码,可是怎么知道这些二维码是否准确呢?这时就要通过解码器quirc从视频画面读取二维码了。

继续执行以下带quirc滤镜的ffmpeg命令,表示要查看目标视频里的二维码信息:

复制代码
ffmpeg -i ff_qrencode.mp4 -vf quirc -f null -

以上命令的执行结果如下:

复制代码
......
Found QR code at position 40,40 - 40,119 with payload: 193 7.720000 2025-06-03 03:33:46
Found QR code at position 40,40 - 40,119 with payload: 194 7.760000 2025-06-03 03:33:46
Found QR code at position 40,40 - 40,119 with payload: 195 7.800000 2025-06-03 03:33:46
Found QR code at position 40,40 - 40,119 with payload: 196 7.840000 2025-06-03 03:33:46

从quirc滤镜的命令结果可见,解析出来的二维码内容形如"193 7.720000 2025-06-03 03:33:46"这样,说明正确读到了之前添加的二维码时间戳内容。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

相关推荐
骄傲的心别枯萎12 小时前
RV1126 NO.30:RV1126多线程获取音频AI的PCM数据
linux·ffmpeg·音视频·pcm·视频编解码
别来这个网址12 小时前
FreeLong-无需训练即可延长视频生成时长
音视频
2501_9275393014 小时前
Permute 媒体文件格式转换【音视频图像文件转换】(Mac电脑)
macos·音视频·媒体·格式转换
嘀咕博客15 小时前
Guidde:AI驱动的视频文档创建工具
人工智能·音视频·ai工具
DuHz20 小时前
Stable Video Diffusion:将潜在视频扩散模型扩展到大规模数据集——论文阅读
论文阅读·人工智能·深度学习·神经网络·算法·音视频
q24985969320 小时前
h.265格式的视频在浏览器无法正常播放,使用ffprobe转为h.264
音视频·h.265·h.264
补补234561 天前
解决漫步者H180Plus(TypeC)耳机连接三星手机后每次播放音频出现滴滴声
android·音视频·三星·typec·edifier·h180plus·滴滴声
无损去水印精灵1 天前
视频去水印方法总结,如何去除抖音视频水印
音视频
顾道长生'1 天前
(Arxiv-2025)OmniInsert:无遮罩视频插入任意参考通过扩散 Transformer 模型
深度学习·音视频·transformer
Highcharts.js1 天前
为什么要创建音频地图?——探索Highcharts可视化的声音创新
信息可视化·音视频