【ffmpeg遇到的问题】

ffmpeg遇到的问题记录

  1. ffmpeg rtsp拉取摄像机流得到的第一帧的时间戳可能会比后续时间戳大,需要处理
    我是直接舍弃了第二个关键帧之前的数据,这样时间戳就都是对的了。

  2. fflpay udp播放rtsp流时遭遇"max delay reached"问题,需要处理 进行展示;
    网上相关问题链接:
    http://fftrac-bg.ffmpeg.org/ticket/6118
    https://blog.csdn.net/weixin_30455365/article/details/101402800
    网上能搜到的解决问题的方案是清一色的将udp协议改为tcp协议,这样固然可以,但有时候我们还是想使用udp协议,
    则可以尝试添加参数 -max_delay 100000;
    ffplay.exe -max_delay 100000 -rtsp_transport udp “rtsp://xxx” //这里设置成100ms; 可以根据网络延迟情况设置更大一点

  3. av_packet_clone并不重新分配视频数据空间,即 data不重新分配,是对源数据data的引用

  4. ffmpeg给视频添加时间水印,中文乱码及时间格式中的冒号报错问题
    网上给视频添加水印的相关参考链接:
    https://blog.csdn.net/yinshipin007/article/details/126125684
    https://blog.csdn.net/fuhanghang/article/details/124705391
    我参考这些链接能够完成基本的水印添加,参考代码如下

     ffmpeg -re -i input.mp4 -vf "drawtext=fontsize=60:fontfile=simhei.ttf:text='%{localtime\:%Y-%m-%d %H-%M-%S}':x=43:y=22:fontcolor=black:box=1:boxcolor=yellow" output.mp4
    

    但是修改过程中遇到两个两个问题:
    a. 中文乱码
    中文乱码开始我以为是fontfile=simhei.ttf中字体参数问题,尝试换了不同的字体仍然不行,最后从系统目录下将字体文件拷贝
    到ffmpeg当前目录下解决了
    在这里插入图片描述
    b. localtime 时间格式中不能有冒号":"
    我需要的时间格式为%H:%M:%S,但是当我将上述示例中的“%H-%M-%S”改为%H:%M:%S时,ffmpeg执行时就报错误了。
    即使我尝试使用转义字符,改为%H:%M:%S,仍然报错。
    最后无奈采用了如下变通方式,算是勉强满足了我的要求:

    ffmpeg -re -i input.mp4 -vf "drawtext=fontsize=65:fontfile=FreeSerif.ttf:text='2022-09-27 10\:%{localtime\:%M}\:%{localtime\:%S}':x=43:y=22:fontcolor=black:box=1:boxcolor=white" output.mp4
    

    即text中采用了多个localtime, localtime之间加":",产生冒号;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值