FFmpeg文章目录

2019-12-17 11:58:55

参考地址 这是一个介绍很好的ffmpeg简述号

这个简述号,大家可以关注,可以看下,他写的几个ffmpeg有图有真相,还是比较好懂的。

Upate to 20190331

专题

seek

ffmpeg # How to seek in mp4/mkv/ts/flv
ffmpeg # flags &= ~AVSEEK_FLAG_BACKWARD
ffmpeg # AVSEEK_FLAG

concat

ffmpeg # concat 连接两个视频
ffmpeg # -f concat -i mylist.txt
ffmpeg # concat详解+音画同步策略

截图

ffmpeg # 截图

文字

ffmpeg # 为视频添加文字drawtext
ffmpeg # drawtext 进阶
ffmpeg # macOS 添加drawtext支持

音频

ffmpeg # 音频那些事

画中画

ffmpeg # 画中画中的视频进行循环

time_base

ffmpeg # 各种封装格式的time_base
ffmpeg # time_base转换函数av_rescale_q
ffmpeg # 几个关键结构体的dts和pts的time_base

转封装

ffmpeg # 转封装命令行
ffmpeg # -c copy 拷贝所有的流
ffmpeg # 转封装 函数
ffmpeg # 怎么控制只是转封装而不需要转码
ffmpeg # h264_mp4toannexb

编码 转码

ffmpeg # 转码 process_input() & reap_filters()
ffmpeg编码后的.264数据长啥样
使用ffmpeg进行H264编码如何不包含B帧
Transcoding with ffmpeg
ffmpeg # CUDA/CUVID/NVDEC # 完全硬件转码 vs 部分硬件转码
ffmpeg # 使用x264/x265参数
ffmpeg # -strict -2

常用命令和使用技巧

ffmpeg 命令行 常用示例
ffmpeg # Linux # 利用2>&1将输出结果到文件
ffmpeg # 将.texi格式的文档转换为html
ffmpeg # 利用loglevel控制打印日志的信息
ffmpeg 常用命令 02

重要结构体

ffmpeg核心结构体AVPacket/AVFrame
ffmpeg # AVRational
ffmpeg # AV_TIME_BASE units
ffmpeg # 判断AVFrame是否为关键帧
ffmpeg # 判断AVPacket是否为关键帧
ffmpeg 中 结构体初始化 的那些花样

重要函数

ffmpeg # avformat_find_stream_info
ffmpeg # avcodec_send_xxx & avcodec_receive_xxx

常用参数

ffmpeg # -ss
ffmpeg # -fflags +genpts
ffmpeg # 视频同步参数 -vsync & -aresample
ffmpeg # probesize & analyzeduration
ffmepg # pix_fmts & out_range
ffmpeg # copyts

filters

ffmpeg中的scale和crop参数
ffmpeg将tile拼成完整的视频
ffmepg中的filter处理的是decoded frames
ffmpeg中filter的3个层次
ffmpeg # 为视频添加文字drawtext

编译

linux下Intel-FFmpeg-Plugin遇到libmfx not found using pkg-config问题
centos下编译x265
linux # x264编译
build ffmpeg with CUDA
mac # eclipse 编译调试ffmpeg
ffmpeg # /lib64/libva.so.1: version `VA_API_0.34.0' not found
ffmpeg # centos # build with libfdk_aac
ffmpeg # macOS 调试x264

流媒体协议

Mac下安装支持rtmp协议的ffmpeg



作者:FlyingPenguin
链接:https://www.jianshu.com/p/8280760c15e4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


  • 2020-12-16 22:07:44

    Android视频点播-边播边缓存

    一些知名的视频app客户端(优酷,爱奇艺)播放视频的时候都有一些缓存进度(二级进度缓存),qq,微信有关的小视频,还有一些短视频app,都有边播边缓的处理。还有就是当文件缓存完毕了再次播放的话就不再请求网络了直接播放本地文件了。既节省了流程又提高了加载速度。 今天我们就是来研究讨论实现这个边播边缓存的框架,因为它不和任何的业务逻辑耦合。

  • 2020-12-16 22:46:44

    基于coturn项目的stun/turn服务器搭建

    webrtc是google推出的基于浏览器的实时语音-视频通讯架构。其典型的应用场景为:浏览器之间端到端(p2p)实时视频对话,但由于网络环境的复杂性(比如:路由器/交换机/防火墙等),浏览器与浏览器很多时候无法建立p2p连接,只能通过公网上的中继服务器(也就是所谓的turn服务器)中转。示例图如下:

  • 2020-12-16 23:06:05

    Rocket.Chat推送信息

    Rocket.Chat推送消息 Rocket.Chat是一个开源实时通讯平台, 支持Windows, Mac OS, Linux. 支持聊天, 文件上传, 视频通话, 语音通话功能. 向Rocket.Chat推送消息 以下示例可以转为别的语言的版本, 本示例使用Linux平台的curl测试, curl非常强大. 登陆 首先需要登陆Rocket.Chat服务器

  • 2020-12-17 09:01:23

    对BitTorrent Tracker源码分析

    tracker服务器是BT下载中必须的角色。一个BT client 在下载开始以及下载进行的过程中,要不停的与 tracker 服务器进行通信,以报告自己的信息,并获取其它下载client的信息。这种通信是通过 HTTP 协议进行的,又被称为 tracker HTTP 协议,它的过程是这样的: client 向 tracker 发一个HTTP 的GET请求,并把它自己的信息放在GET的参数中;这个请求的大致意思是:我是xxx(一个唯一的id),我想下载yyy文件,我的ip是aaa,我用的端口是bbb。。。

  • 2020-12-17 10:55:48

    html5 video p2p research

    节约带宽,减少缓冲时间,提升服务质量,处理峰值流量, 视频观看的人越多,播放越流畅。

  • 2020-12-17 10:57:34

    使用 MediaSource 搭建流式播放器

    Media Source Extensions(媒体源扩展)大大地扩展了浏览器的媒体播放功能,提供允许JavaScript 生成媒体流。这可以用于自适应流(adaptive streaming,也是我毕设的研究方向)及随时间变化的视频直播流(live streaming)等应用场景。

  • 2020-12-17 11:00:37

    H5流式播放(FMP4转封装与mediaSource)

    W3C上有明确关于mediaSource 扩展接口的文档。mediaSource 扩展文档中是这么定义的, 它允许JS脚本动态构建媒体流用于和,允许JS传送媒体块到H5媒体元素。这种接口的应用可以让h5播放器实现持续添加数据进行播放。做as的朋友都知道as中的appendBytes方法,一种添加二进制数据进行播放的方式。这两种接口在概念上是类似的。只是里面的定义和对媒体文件的要求有所不同。对于mediaSource扩展接口我只介绍我们主要应用的几个。