音视频处理
文章平均质量分 83
音频视频处理技术专栏,分享编解码、开源工具的使用等知识。
TracelessLe
BetterLife,BetterWorld.
展开
-
基于GStreamer和FFmpeg的OpenCV安装和使用
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。可用于开发实时的图像处理、计算机视觉以及模式识别程序。本文简要介绍基于gstream和FFmpeg的opencv安装和使用。原创 2022-09-21 10:36:52 · 2899 阅读 · 0 评论 -
使用Python对GIF读取、生成、压缩和加水印
环境说明Python环境下对GIF文件进行读取、生成、压缩和加水印,主要使用到的包有:cv2imageiopygifsicleffmpeg读取__author__ = "TracelessLe"import cv2import osimport numpy as npclass GIF(): def __init__(self, file_path): self.file_path = file_path self.material = [原创 2022-04-13 17:20:22 · 1990 阅读 · 0 评论 -
使用imageio写视频文件指定输出质量
前言imageio是一个比较好用的用于读写图片数据的Python library,在处理视频数据时是以imageio_ffmpeg为backend的。问题当使用imageio读写视频时,其会调用imageio_ffmpeg包以使用ffmpeg作为backend。常用调用方法如下:__author__ = "TracelessLe"import imageioif __name__ == "__main__: video_path = 'test.mp4' video_reader =原创 2022-04-13 14:51:22 · 5011 阅读 · 0 评论 -
编写Bash脚本实现使用FFmpeg批量合并视频
前言使用FFmpeg能够很方便的合并同分辨率的视频。很多时候我们可能需要批量化合并视频,此时可以通过编写Bash脚本来实现。实现批量合并视频合并三个文件夹中的视频结果:result_path1=task1result_path2=task2result_path3=task3concat_path=concat-videosif [ ! -d "./$concat_path" ]; then mkdir ./$concat_pathfifor i in {0..20}do原创 2022-01-08 15:54:04 · 1415 阅读 · 0 评论 -
Ubuntu上安装VMAF及使用
前言VMAF(Video Multi-Method Assessment Fusion) 是由Netflix提出用于评估视频的整体质量的项目。该项目目前已经开源,并且可以集成在FFmpeg等第三方视频库中。安装步骤下载安装VMAFgit clone https://github.com/Netflix/vmaf.gitcd vmaf/libvmaf/sudo apt install mesonsudo apt install nasmmeson build --buildtype rele原创 2021-08-26 16:48:55 · 2559 阅读 · 3 评论 -
视频编解码之GOP
前言在MPEG 视频编码标准中,图像集合(Group of pictures,GOP,也翻译成图像群组)即一个I帧和下一个I帧之间的帧数。图像集合就是一组以MPEG编码的影片或视频串流内部的连续图像。每一个以MPEG标准编码的视频都由连续的图像集合组成。H.264与I/P/B帧H.264是目前使用最为广泛的视频压缩标准之一,随着x264/openh264和ffmpeg等开源库的推出,这一标准被越来越广泛的采用。而GOP概念作为H.264标准中的一员,需要结合更细的I/P/B帧概念分析。I/P/B帧原创 2021-06-28 18:25:11 · 5367 阅读 · 1 评论 -
替换Python的imageio包中自带的ffmpeg以支持GPU编解码加速
前言imageio是一个比较好用的用于读写图片数据的Python library,在处理视频数据时是以imageio_ffmpeg为backend的。问题当使用imageio读写视频时,其会调用imageio_ffmpeg包以使用ffmpeg作为backend。而其自带的ffmpeg只支持CPU,不支持GPU编解码加速。深入到imageio_ffmpeg所在位置,例如~/.conda/envs/env_name/lib/python3.7/site-packages/imageio_ffmpeg原创 2021-03-31 21:01:22 · 4846 阅读 · 6 评论 -
解决NVIDIA GeForce系列显卡NVENC并发Session数目限制问题
前言NVIDIA NVENC是NVIDIA显卡从2012年3月发布的Kepler-based GeForce 600系列引入的在视频编码方面的一个特性。较好地支持了显卡硬解码能力,加快视频解码速度。我们在使用支持硬编码的NVIDIA GPU进行视频编码时,一般是支持多路并发的,但是对于不同系列的显卡并发数支持不一样。通过官网可以看到不同系列对多路编码的支持。问题分析在使用GeForce系列做多路并发编码时,发现一旦并发数目超过3个,则超过3个的线程在创建编码Session时会直接报错。Runti原创 2021-02-08 14:28:22 · 10766 阅读 · 7 评论 -
使用FFmpeg生成高清gif图
前言使用FFmpeg能够很方便的给视频片段或GIF加水印,同时还能对选取的片段生成GIF图,但是在使用默认FFmpeg设置情况下,生成的GIF画质很差,有很明显的栅格化现象。如何生成高质量的GIF是一个需要探索的问题。问题复现对以下这个GIF(input.gif)添加如下水印(logo.jpg):使用FFmpeg命令如下:ffmpeg -i input.gif -vf "movie=logo.jpg,scale= 30: 30[watermark];[in][watermark] ove原创 2020-10-15 21:41:40 · 3840 阅读 · 3 评论 -
使用ffmpeg-python获取视频信息如FPS、时长等
前言FFmpeg 是一个开放源代码的自由软件,可以运行音频和视频多种格式的录影、转换、流功能。而ffmpeg-python是开发者kkroening负责开发和维护的一套ffmpeg的python扩展。在作者的GitHub项目主页中,给出了很多实际的使用代码示例,其中就包括本文要讨论的获取视频信息。可以移步上述Github链接查看。编码实现要使用ffmpeg-python获取视频信息,实际上是通过ffmpeg-python去调用底层的FFmpeg的ffprobe工具实现。之前有写过FFmpeg的工具原创 2020-09-30 15:11:50 · 9509 阅读 · 10 评论 -
使用ffmpeg-python给视频转FPS
前言FFmpeg 是一个开放源代码的自由软件,可以运行音频和视频多种格式的录影、转换、流功能。而ffmpeg-python是开发者kkroening负责开发和维护的一套ffmpeg的python扩展。在作者的GitHub项目主页中,给出了很多实际的使用代码示例,可以移步查看。编码实现要使用ffmpeg-python给视频转FPS,需要注意FPS控制参数为“r”,则在使用时将目标帧率传至"r=*",例如"r=24"。import ffmpegdef change_fps(source_vide原创 2020-09-30 14:58:09 · 1702 阅读 · 1 评论 -
Ubuntu上安装NVIDIA VideoProcessingFramework (VPF)
引言安装参考官方给的安装教程,以Linux系统为例,Windows系统请直接查看官网教程。预先安装依赖(1)安装Nvidia video driver和CUDA SDK①按照最新的CUDA和英伟达显卡驱动,需要注意版本对应。②下载NVIDIA Video Codec SDK并解压备用,官网下载需要注册,可以直接从CSDN下载。(2)从源码安装FFMpeg推荐从源码安装FFMpeg:cd ~/installsgit clone https://github.com/FFmpeg/FFm原创 2020-09-15 15:08:56 · 3576 阅读 · 4 评论 -
【持续更新】FFmpeg常用命令小结
FFmpeg工具套件常用命令查看视频信息ffmpeg -i input.mp4或者ffprobe -i input.mp4输出信息如下:ffmpeg version 4.2.3 Copyright © 2000-2020 the FFmpeg developersbuilt with Apple clang version 11.0.3 (clang-1103.0.32.59)configuration: --prefix=/usr/local/Cellar/ffmpeg/4.原创 2020-09-13 13:27:18 · 1985 阅读 · 0 评论 -
Python下OpenCV包需要注意看清楚来源
问题及解决方案在Python环境下,以往一直使用pip安装的方式安装的OpenCV。pip install opencv-python没有注意以此方式安装的并不是官方版,而是一个个人维护的库。作者其实也写明了这是一个“Unofficial pre-built OpenCV packages for Python.”,只是一直觉得安装着方便,没有注意这一点。直到前些阵子发现使用cv2.VideoCapture()函数时,针对同一视频,不同版本的OpenCV读出来的视频帧数不一致,特别是某一版本读原创 2020-08-27 15:18:28 · 347 阅读 · 0 评论 -
Ubuntu上安装opencv-cuda加速
前言OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。可用于开发实时的图像处理、计算机视觉以及模式识别程序。OpenCV的主要目标是:为推进机器视觉的研究,提供一套开源且优化的基础库。不重造轮子。提供一个共同的基础库,使得开发人员的代码更容易阅读和转让,促进了知识的传播。透过提供不需要开源或免费的软件许可,促进商业应用软件的开发。Open原创 2020-08-24 23:51:25 · 3828 阅读 · 2 评论 -
Ubuntu上安装ffmpeg-cuda加速
前言FFmpeg 是一个开放源代码的自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。“FFmpeg”这个单词中的“FF”指的是“Fast Forward(快速前进)”。FFmpeg基础组件:(1)命令行应用程序ffmpeg:用于对视频或音频进行处理ffplay:一个简单的播放器,基于SDL与FFmpeg库ffprobe:用于显示媒体文件的信息(2)函原创 2020-08-24 21:29:31 · 2956 阅读 · 2 评论 -
FFmpeg的log日志打印控制(命令行或Python)
前言在使用FFmpeg处理音视频时,这个工具会默认自动在命令行窗口打印log日志信息。如下所示:很多时候我们可能在实际应用中并不需要这个打印的信息,特别是在音视频批量任务处理时,过多的打印信息可能会刷屏或者造成输出堵塞。另外打印操作也是需要耗时的。于是我们考虑关掉它或者只打印关键信息。思路通过查看FFmpeg官网,可以看到,直接通过传参“-loglevel”可以控制log的输出。可供选择的选项如下:loglevel is a string or a number containing one原创 2020-07-30 21:09:55 · 5843 阅读 · 2 评论 -
MAC上安装ffmpeg并使用python调用
参考:1、在 macOS 上安装 FFmpeg 并通过 Python 调用的方法2、Mac OS上使用ffmpeg的“血泪”总结首先需要在MAC机器上安装原生ffmpeg,最方便的方式是采用Homebrew安装。注:采用以下命令安装homebrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"homebrew安装成功后,使用以下命令安装ffm原创 2020-05-29 12:00:43 · 2328 阅读 · 4 评论 -
Ubuntu上安装ffmpeg
简易安装方式安装sudo apt-get install ffmpeg版本查看ffmpeg -vffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)卸载此卸载方法只适用于刚刚那条极简安装指令,如果通过其他方法安装,该指令不适用sudo apt-get purge ffmpeg以上.原创 2020-07-15 16:17:47 · 21368 阅读 · 9 评论 -
Ubuntu下x264库编译安装
在使用FFmpeg时可能需要用到H264编解码器,Ubuntu上可能需要额外安装。1. 下载x264库git clone https://code.videolan.org/videolan/x264.git或者在CSDN资源共享上点击下载。2. 编译配置./configure --disable-asm --enable-shared --enable-pic3. 开始编译make4. 安装make install其实就是移动了库文件、可运行文件的位置。参考资料:[1] f原创 2020-07-22 20:54:53 · 5456 阅读 · 0 评论