
音视频
文章平均质量分 74
秦城季
个人博客:https://qincji.gitee.io/
展开
-
FFmpeg添加字幕的详细操作
在视频中添加字幕可以使视频更具可读性,并为观众提供更好的观看体验,这在多语种内容中尤为重要。FFmpeg是一个流行的开源视频处理工具,它可以被用来给视频添加字幕。本文将介绍FFmpeg集成libass的编译流程,介绍SRT和ASS字幕格式及其参数,如何使用FFmpeg向视频添加硬字幕和软字幕,并通过示例演示如何生成单一字幕和多项字幕。而本文最后实现的效果为:默认中英文字幕,可选英文字幕的软字幕的实现。原创 2023-04-05 20:20:56 · 22791 阅读 · 1 评论 -
FFmpeg 简单实现转码
首发地址,会更错本文汇总前面几篇文章,把所有流程合并到一块,简单实现转码的流程。其中有些异常不做处理。转码原理先看雷神的一张图:上图描述的很明白,上完图发现已经不需要语言描述了[Dog]。 但还是画个来说明一下这块之间的联系:其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。代码实现/** * @author 秦城季 * @email xhunmon@126.com * @Blog https://qincji.gitee原创 2021-01-21 19:35:25 · 1092 阅读 · 3 评论 -
FFmpeg Encode(编码)
首发地址,会更错本文来自官方例子doc/examples/encode_audio.c 和 doc/examples/encode_video.c。FFmpeg编码流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。官方例子【Audio】/** * @author 秦城季 * @email xhunmon@126.com * @Blog https://qincji.gitee.io * @date 2021/01/07原创 2021-01-18 20:31:40 · 2972 阅读 · 0 评论 -
FFmpeg Decode(解码)
首发地址,会更错本文来自官方例子doc/examples/decode_audio.c 和 doc/examples/decode_video.c。FFmpeg解码流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wB37NhkP-1610869697159)(11_decode/decode-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。官方例子【Audio】/** *原创 2021-01-17 15:48:47 · 1998 阅读 · 0 评论 -
FFmpeg Remuxing(重新封装)
首发地址,会更错本文来自官方例子doc/examples/remuxing.c 。FFmpeg解封装流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdFwzDbO-1610869624110)(10_remuxing/remuxing-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。重新封装的原理就是把输入文件 解封装 之后,再进行 封装 输出到新的文件中。官方例子/*原创 2021-01-17 15:47:16 · 956 阅读 · 1 评论 -
FFmpeg Muxing(封装)
首发地址,会更错本文主要参考雷神的最简单的基于FFmpeg的封装格式处理:视音频复用器(muxer) 与官方例子doc/examples/muxing.c 。FFmpeg解封装流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZ7YlCag-1610869529867)(09_muxing/muxing-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。以上步骤主要方法的简单说原创 2021-01-17 15:45:55 · 590 阅读 · 0 评论 -
FFmpeg Demuxing(解封装)
首发地址,会更错FFmpeg解封装流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3sthCn5-1610869455774)(08_demuxing/demuxing-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。(1)avformat_open_input创建并初始化AVFormatContext结构体,并把输入文件信息赋值到AVFormatContext中。(2)原创 2021-01-17 15:44:27 · 575 阅读 · 0 评论 -
手撕FLV协议
首发地址,会更错实现效果纯代码实现分离FLV音视频流,并组装成AAC和H264文件,最后能正常播放。注:本文只对有AAC和H264格式音视频流组成的flv进行分离。FLV协议[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oyU21eaj-1610869332555)(07_flv/flv-pr.jpg)]注:脚本部分本文未使用,可前往这查看。实现代码代码注释已经很详细了,其实就是对照协议表进行数据解析,其中:(1) H264协议请看直播推流全过程:视频编码之原创 2021-01-17 15:42:44 · 352 阅读 · 0 评论 -
FFmpeg重要结构体(转自雷神)
首发地址,会更错本文主要整合FFMPEG中最关键的结构体之间的关系 系列文章,以便于后面学习以及资料的查阅。结构体间联系[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cfJn4l60-1610869259427)(06_struct/struct-relationship.jpeg)]a)解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储转载 2021-01-17 15:41:25 · 465 阅读 · 0 评论 -
使用Clion阅读FFmpeg源码(支持跳转)
首发地址,会更错前言本方案仅仅适用于阅读FFmpeg,配置方式及其简单,能支持方法间的跳转,但由于配置原因部分无法识别或跳转,介意者勿入!!方案一(简单)此方案非常简单,能阅读绝大部分源码了,但仍会缺失一些头文件,导致无法小小部分无法查阅。步骤1在Clion新建c++项目项目File->New Project->Create,如下图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l6w0Zhdv-1610869186665)(05_source/so原创 2021-01-17 15:39:58 · 904 阅读 · 0 评论 -
FFmpeg导入到Clion(MacOS)
首发地址,会更错继如何编译FFmpeg后,本章也是基于前面来讲解如何把编译后的库文件移入到Clion。在编译ffmpeg前,有一点需要提前说明的,Mac系统并不支持链接静态库,详细请看初步认识c/c++编译这篇文章。针对于平台的差异性,CLion工具在Mac系统中使用CMakelist.txt进行交叉编译并不友好,我试过集成Android平台的ffmpeg,最终以失败而告终,主要报错原因是:无法指向NDK中的 ld 链接器(要是哪位朋友尝试编译通过还望告知)。所以后续如果是Android项目还是老老实实原创 2021-01-17 15:38:24 · 791 阅读 · 1 评论 -
编译ffmpeg4.2.2
首发地址,会更错前言在编译FFmpeg之前,我们得先知道FFmpeg包含了那些内容(组件),我们应该要如何查看并选择?这里我们就简单来说说FFmpeg编译的过程,以及集成x264,编译android平台所需要的动态库等。(这里的测试使用的是Mac系统)FFmpeg编译流程编译过程主要分为两步(下图):(1)configure:通过configure --help查看我们所能选择的配置。前往查看configure配置选项注释。这一步后会生成许多Makefile编译所需要的东西。其中在 ffbuil原创 2021-01-17 15:36:32 · 698 阅读 · 0 评论 -
Shell脚本
首发地址,会更错简介Shell脚本(Shell Script)是一种为Shell编写的脚本程序。而Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。在Linux中Shell程序又有很多种,如:sh - 即 Bourne Shell。sh 是 Unix 标准默认的 shell。bash - 即 Bourne Again Shell。bash 是 Linux 标准默认的 shell。……其中,bash由于易用和免费,被广泛使用。每种Shell程序都有其对应的解释器,在脚本文件第一原创 2021-01-17 15:35:45 · 308 阅读 · 0 评论 -
0基础学习音视频路线,以及重磅音视频资料下载
一、前言正所谓源于开源,回馈开源!以下是我个人的学习建议。丰富的音视频资料往最后翻。二、学习技能技能重要度作用学习建议c/c++★★★★☆音视频开源库基本都是用c/c++写的,如:FFmpeg库用C语言写的,Webrtc底层是用c++写的。1. 看动脑或网易c/c++视频;2. 看书:c++ primer 第5版;3. 看FFmpeg源码;4. 最重要自己动手敲。cmake★★★☆☆跨平台引导编译的重要语言。在CMakeList.txt文件体现。1. 看动脑C原创 2021-01-13 21:41:29 · 679 阅读 · 0 评论