通过FFmpeg处理跑马灯广告

简介: FFmpeg 裁剪后的视频是对视频原尺寸有影响的,分辨率没有影响。对于视频跑马灯广告的处理方式,还有前端对播放器进行遮挡等方法,不过使用该方法从片源的角度解决了问题,同时巧妙的避开了大量的解码与转码的过程,虽然观影体验降低,但是不能有敏感的广告才是优先级最高的。

🎨 背景

通过爬虫获取到的电视剧,在顶部往往存在跑马灯广告。相同播放域名存在一定的规律,可以对特定时间进行水印覆盖,但是通过人工去寻找这个规律,仅只能抽样,存在极大的不确定性。并且水印覆盖存在对视频编码与解码的行为,时间与空间复杂度都是较高的。<br/>

本文将向您展示如何从命令行使用 FFmpeg 裁剪视频,它对于批量修剪多个视频特别有用。

🔭 预期

  • 处理速度

    • 1个小时的视频,处理时间为 10 ~ 15 分钟
  • 视频裁剪前:视频裁剪前
  • 视频裁剪后:视频裁剪后
  • 补充说明

    • 预估时间为 10~15 分钟,不是很准确的原因是目前服务器负责了其他任务,占用的内存较大
    • 解析过程速度截图如下:解析速度

🍽️ 特征

  • 缺点

    • 不执行就地编辑
    • 水印覆盖存在解码与编码过程,非常慢
  • 优势

    • 转换视频格式
    • 支持主流视频格式,例如 ts、mp4、avi、m3u8
    • 跨平台使用,支持 masOS、linux、ubuntu、windows
    • 视频处理之前,就能通过内置命令查看处理后的结果,提供了预览功能

💻 正文

安装

masOS:

brew install ffmpeg
更多下载方式

裁剪

让我们从基础开始。要使用FFmpeg修剪视频的一部分,命令为:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
  • w 输出视频宽度(修剪区域的宽度)。默认值为输入视频宽度(输入视频宽度= iw)
  • h 输出视频高度(裁剪区域的高度)。默认值为输入视频高度(输入视频高度= ih)
  • x 从修剪开始的水平位置。从左边开始(绝对左边距为 0)
  • y 从视频顶部开始,从此处开始修剪的垂直位置(绝对顶部为 0)

简单示例

让我们看一个基本的FFmpeg修剪的例子。

  • 从中心开始裁剪一个100像素的正方形 (默认情况下 FFmpeg 设置为居中,因此 x 和 y 未指定任何值)。

ffmpeg -i input.mp4 -filter:v "crop=100:100" output.mp4
  • 从左上方开始裁剪一个100像素的正方形。

ffmpeg -i input.mp4 -filter:v "crop=100:100:0:0" output.mp4
  • 从右上方开始裁剪一个100像素的正方形。

ffmpeg -i input.mp4 -filter:v "crop=100:100:iw-100:0" output.mp4

裁剪视频边界

要使用 FFmpeg 修剪视频边界(顶部,底部,左侧,右侧边界),请使用:

ffmpeg -i input.mp4 filter:v "crop=iw-n:ih-n" output.mp4
  • iw:输入视频的宽度
  • ih:输入视频的高度
  • n:裁剪像素数(输入预期视频宽度)
  • m:裁剪像素数(输入预期视频高度)

强烈建议使用以下命令,预览(播放)裁剪后的视频,有有益于快速检查裁剪区域是否正确。

ffplay -filter:v "crop=w:h:x:y" input.mp4

裁剪视频示例

  • 裁剪视频顶部、底部、左右边框

ffmpeg -i input.mp4 filter:v "crop=iw-100:ih-200" output.mp4
假设您知道输入视频的高度和宽度(500 x 300 在此示例中),以上命令也可以编写为:
ffmpeg -i input.mp4 filter:v "crop=500-100:300-200" output.mp4
  • 仅裁剪左右边框

ffmpeg -i input.mp4 filter:v "crop=iw-200" output.mp4
  • 仅裁剪顶部和底部边框

ffmpeg -i input.mp4 filter:v "crop=iw:ih-200" output.mp4

🎒 参考文献

🎉 结语

FFmpeg 裁剪后的视频是对视频原尺寸有影响的,分辨率没有影响。对于视频跑马灯广告的处理方式,还有前端对播放器进行遮挡等方法,不过使用该方法从片源的角度解决了问题,同时巧妙的避开了大量的解码与转码的过程,虽然观影体验降低,但是不能有敏感的广告才是优先级最高的。<br/>

目录
相关文章
|
7月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
226 1
|
8月前
|
测试技术 PHP
大屏幕互动系统PHP源码 附动态背景图和配乐素材 含搭建教程
最新大屏幕互动系统PHP源码 附动态背景图和配乐素材 含搭建教程
116 0
[笔记]音视频学习之SDL篇《十三》播放音乐和特效
[笔记]音视频学习之SDL篇《十三》播放音乐和特效
写博客时怎么录制动态图片或者小视频
很多人写博客时都会为自己的博客插入动图,这个是怎么实现的呢?最近网上搜到了一款比较实用的工具,分享出来,这个工具只有1.6M大小,非常小巧实用,就是GifGam了。
130 0
写博客时怎么录制动态图片或者小视频
|
监控 JavaScript 安全
一款web端的好用又好看的音乐、视频播放器-XGPlayer
视频播放器一直是Web端比较难整的功能,虽然已经有比较优秀的开源库。可以满足日常开发大部分的功能,但是在一些功能上还是不尽如人意。今天给大家介绍一款由西瓜团队开源的视频播放器。
一款web端的好用又好看的音乐、视频播放器-XGPlayer
|
计算机视觉 Python
Python3,4行代码给图片加美颜,拍照再也不需要开美颜滤镜了。
Python3,4行代码给图片加美颜,拍照再也不需要开美颜滤镜了。
35835 0
Python3,4行代码给图片加美颜,拍照再也不需要开美颜滤镜了。
|
前端开发 数据可视化 Android开发
autojs音乐动效
牙叔教程 简单易懂
310 0
|
API Android开发
autojs播放在线音乐的方法
用webview播放, 或者拦截跳转真实链接下载播放
688 0
|
数据安全/隐私保护 Python Web App开发
抖音水印python源码
抖音水印python源码 import hashlibimport base64import timeimport requestsimport jsonimport lxml.html def base64encode(text: str, reverse_map: bool = False) ...
1224 0