Ffmpeg 视频教程】的更多相关文章

最近一段时间找时间录制了一些Ffmpeg视频教程,还有录制完毕,会持续更新,内容会包含Ffmeg保存文件,网络流转发, 编码,解码,播放器制作,以及服务端搭建等等,适合初学者,有需要的朋友的可以关注:可以加QQ群流媒体/Ffmpeg/音视频 127903734,群里有视频(看了视频可以在群里交流),也可以直接从网盘下载,录制更新后会上次到QQ群跟网盘. 网盘地址:http://pan.baidu.com/s/1jH4dYN8…
Ffmpeg支持添加文字功能,具体如何将文字叠加到视频中的每一张图片,FFmpeg调用了文字库FreeSerif.ttf.当我们 用到ffmpeg 添加文字功能时 我们需要先下载改文字库,下载地址是http://www.fonts2u.com/free-serif.font,这算是 前期准备工作.准备工作完成以后,我来介绍下Ffmpeg实现视频文件添加文字功能的基本流程,流程图如下图所示: 图1. Ffmpeg 向视频添加文字流程 Ffmpeg 以Filter的方式添加文字,下面给出具体的代码.…
本文主要讲述如何利用Ffmpeg向视频文件 添加水印这一功能,文中最后会给出源代码下载地址以及视频 下载地址,视频除了讲述添加水印的基本原理以及代码实现,还提到了要注意的一些地方,因为直接运行 demo源码可能会有问题.利用Ffmpeg向视频文件添加水印的基本原理是将视频文件的视频包解码成一帧帧 “Frame”,通过ffmpeg  Filter(overlay)实现待添加水印与“Frame”的叠加,最后将叠加后的视频帧进行编码 并将编码后的数据写到输出文件里.基本的流程如下图所示: 图1 ffm…
最近一段时间找时间录制了一些Ffmpeg视频教程,还有录制完毕,会持续更新,内容会包含Ffmeg保存文件,网络流转发, 编码,解码,播放器制作,以及服务端搭建等等,适合初学者,有需要的朋友的可以关注:可以加QQ群流媒体/Ffmpeg/音视频 127903734,766718184群里有视频(看了视频可以在群里交流),也可以直接从网盘下载,录制更新后会上传到QQ群跟网盘. 如需交流,可以加QQ群766718184,或者QQ:350197870 视频教程 播放地址: http://www.iqiyi…
ffmpeg 部分内存管理采用 了内存池技术.基本的接口在libavutil目录下的buffer.c文件中实现: 1. av_buffer_pool_init 初始化 内存池 2 av_buffer_pool_get 从内存池中获取buffer 3.av_buffer_pool_uninit 释放内存池 4.pool_release_buffer 回收buffer ffmpeg 解码h264视频流需要给Picture分配空间时会向pool 获取buffer,分配的空间不再 需要时通过pool_r…
项目用到opencv 融合图片的功能,经过一天的调试,达到预期目标,先将如何调用opencv库实现YUV42与Mat互转记录下来. 一.下载opencv编译的库下载地址是:http://opencv.org/releases.html ,根据需要选择相应的版本,我们项目中用到的版本是2.4.13. 二.下载Eigen库,下载地址是:http://eigen.tuxfamily.org/index.php?title=Main_Page,将Eigen库解压到本地,引用opencv库是要用到 Eig…
记录项目中用到一组x264快速编码参数配置,具体如下: param->i_frame_reference = 1; param->i_scenecut_threshold = 0; param->b_deblocking_filter = 0; param->b_cabac = 0; param->i_bframe = 0; param->analyse.intra = 0; param->analyse.inter = 0; param->analyse.…
忽然想统计一下我录制过的视频一共多长时间,由于视频文件很多,一共72个,挨个打开进行累加不是程序员应该想起的办法.所以就打算写一个程序来完成这件事,最核心的问题就是“获得一个视频文件的时长”. ffmpeg是一个专业的音频视频处理开源技术,借助于它可以完成视频转码.视频截图.视频提取等工作,ffmepg也提供了获取视频长度的方法,不过想想只是获取视频长度这么一件事就要动用ffmpeg有点“杀鸡用牛刀”的感觉,所以就上网搜寻是否有其他获得视频文件长度的方法,很快就找到了这样一篇文章<C# 获取视频…
一.简介: 前一段时间尝试录制了几集3D编程方面的视频教程,我发现录制时最大的障碍是让脑中的思考.手上的操作和嘴里的解说保持同步,一旦三个"线程"中有一个出错,就必须停下来重新录制出错的部分,同时一心三用也会极大的增加精力消耗,减少有效录制时间.为了解决这一问题.降低视频教程的编写门槛,我尝试编写了一个将预先设定的文本插入视频中作为旁白的小工具,尝试将思考.操作和解说三个线程分解到三个时间片中运行. 因为以前没接触过完整的java窗口程序编写,这个小工具的代码非常简陋生硬,程序名为Sa…
测试环境:windows10 开发工具:VS2013 从今天开始准备些FFmpeg的系列教程,今天是第一课我们研究下打开视频文件和视频解码器.演示环境在windows上,在Linux上代码也是一样. windows上可以不编译ffmpeg源码,后面我会分别讲解在linux和在windows上如何编译ffmpeg,直接在FFmpeg官网下载已经编译好的dll和lib文件,下载地址https://ffmpeg.zeranoe.com/builds/ 或者www.ffmpeg.club 里面有32位和…
文章转自:http://www.cucer.cn/2016/03/10/ffmpeg-screen-capture.html 有些时候我们需要对屏幕进行录制,比如制作视频教程,录制直播等.然而这方面的软件多是收费的,即使是免费试用版的还有水印,特别烦人.下面介绍使用FFmpeg进行屏幕录制的方法. Windows 先安装dshow软件 Screen Capturer Recorder, 项目地址:https://sourceforge.net/projects/screencapturer/fi…
最好经手一个小的功能将mp2实时流转成AAC并发布成rtmp音频流,本身不是很难的一个需求, 一个晚上就能将功能开发好.功能开发完毕后,找来一音频文件利用Ffmpeg命令将音视频文件推成 实时udp格式音频流,具体的推送命令是: ffmpeg.exe -r -i F:\test.mp2 -acodec copy -f mp2 udp://127.0.0.1:1234 测试程序以udp://127.0.0.1:1234为输入源,rtmp://127.0.0.1/live/stream为输出流.从输…
window下如何编译ffmpeg 前文已有介绍,前面介绍的都是如何编译32位的库,本文主要介绍window 下如何编译64位ffmpeg库. 一.搭建编译环境 1.下载 windows下编译64位Ffmpeg 需用到Msys及MinGW-w64.首先将他们下载下来,下载地址如下: MinGW-w64:https://sourceforge.net/projects/mingw-w64/files/latest/download Msys: https://sourceforge.net/pro…
本来主要介绍linux环境下如何编译ffmpeg使之生成ffplay.编译总是离不开源码的版本,以及编译环境下:编译环境Ubutun 16.04 ,ffmpeg 版本3.4.2.如何下载ffmpeg 请看上两篇博文,编译ffmpeg使之生成ffplay需要在配置ffmpeg时“使能”SDL,原因是ffplay依赖SDL库. 配置ffmpeg前 我么需要获得SDL库,3.4.2版本ffmpeg要求SDL版本在2.0以上(可以查看配置文件). 获得SDL库文件有两种方式:一种是下载SDL源码进行编译…
Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure with --disable-asm. 上片篇博文介绍了linux下编译原生ffmpeg,本文介绍linux下编译ffmpeg如何引入外部库例如libx264,会了 添加libx264,引入其他编译库就不难了.linux环境:Ubuntu16.04,ffmpeg 版本3.4.2 一.下载libx2…
本文主要介绍Linux 系统下如何编译Ffmpeg,编译环境是Ubuntu 16.04,Ffmpeg版本是3.4.2.Windows环境 下如何编译ffmpeg前面有博文介绍,也录有视频,感兴趣的同学查可以看我之前写的博文,视频可以从群里 下载.与Windows下编译不同,Linux下编译ffmpeg相对简单很多.下面具体介绍编译步骤: 1.下载源码 源码地址是http://ffmpeg.org/download.html,注意我们需要时源码,不是编译好的可执行文件.我们直接点击 如图所示页面上…
经常有人问我如何学习音视频以及如何学习Ffmpeg,问我有没有比较好的书的书推荐.比较好的音视频以及FFmpeg方面的 书,我了解到的比较全面又能深入浅出的还真没有.很多朋友都推荐雷神的博客,雷神的博客看的不多,不太好下结论,既然大家 都很推荐,相信应该很好.有朋友给建议我写本这方面的书,我也很想写一本,如果我写的书被很多人阅读,一定是件幸福的事情. 写书毕竟跟录视频不同,需要花很多的时间跟精力.当我们的语言变成文字写进书本时我们需要推敲每一句话,不能有语病,不能有 漏洞,也不能不专业.权衡利弊…
本文讲述的案例是如何通过Ffmpeg实现从USB Camera中获取视频流并将视频流保存到MP4文件. 本文亦适用于从USB Camera 获取视频流并将视频流转发到rtmp服务的案例,二者基本的原理和流程 一样,不同的仅仅是输出上下文. 首先撇开Ffmpeg说说基本的原理,一直觉得基本的原理是最重要的,理解了基本的原理即使出现 问题也能快速定位问题.USB Camera 对操作系统来说就是一个USB 设备,应用程序如何获得设备的基本 信息又如何跟设备进行通信呢?答案是通过设备的驱动程序,当然应…
利用ffmpeg 获取USB 或者本地摄像机视频,并将视频编码后保存本地文件或者发送到远端流媒体服务经常会出现 类似real-time buffer [USB2.0 Camera] [video input] too full or near too full (101% of size: 30412) 这样的错误,其根本 原因是编码的速度太慢导致过多的图片数据保存在缓存内,缓存区空间太小或满了就会报错.如何解决这个问题呢? 有两条思路:1加快编码速度,可以选择硬件编码.2是读取视频包跟编码分两…
ffmpeg H264编解码前面有文章介绍下,本文主要介绍一些参数配置. 编码: int InitEncoderCodec( int iWidth, int iHeight) { AVCodec * pH264Codec = avcodec_find_encoder(AV_CODEC_ID_H264); if(NULL == pH264Codec) { printf("%s", "avcodec_find_encoder failed"); return -1; }…
Windows系统下 vs2012编译ffmpeg 动态库 前面已经有文章讲述,本文将讲述如果编译生成ffmpeg静态库以方便 在vs2012下调用. 准备工作:安装MinGW环境,修改ffmpeg配置文件,这两步均与编译动态库相同,这里不再赘述.唯一不同的不同的 是配置命令,生成静态库的命令是: ./configure --toolchain=msvc --enable-static --enable-gpl --enable-version3 --enable-librtmp --extra…
文本主要讲述windows系统下如何利用ffmpeg获取摄像机流并推送到rtmp服务,命令的用法前文 中有讲到过,这次是通过代码来实现.实现该项功能的基本流程如下: 图1 ffmpeg推流流程图 较前面的文章的流程图而言,本流程图显的复杂些,稍微解释下: ffmpeg 打开摄像头跟打开普通的视频流方法一致,只是输入url是摄像头的名称.真正打开 摄像头操作由dshow来完成,ffmpeg只是调用dshow相应的接口获取返回值:读取packet 的API 依然是av_read_frame,返回的p…
ffmpeg h264编码的例子前面的文章已经介绍,本来主要讲述影响AVCodecContext extradata是否为 空的配置项.如果要求open编码器以后AVCodecContext extradata存有 SPS,PPS 信息需要加上 EncoderContext->flags |= AV_CODEC_FLAG_GLOBAL_HEADER .跟踪源码你会发现这个标志在 libx264.c中被用到.如下图所示:                                       …
写在前面 最近正好有音视频编辑的需求,虽然之前粗略的了解过FFmpeg不过肯定是不够用的,借此重新学习下: 基本概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特地的格式/规则组合到一起的,常见如: mp4 flv mkv avi 媒体流(Stream): 表示时间轴上的一段连续数据,如一段声音数据.一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器. 数据帧/数据包(Frame/Pa…
目录 前言 1.软件工具准备 a. 录音软件 b. 录屏软件 c. 摄像头软件 d. 安卓屏幕操作软件 e. 视频剪辑软件 2.视频教程制作 3.效果 参考链接 前言 博主使用 Arch Linux 作为日常开发系统,最近需要录制一些视频类的教程,遂研究了一些相关软件,想要做一个稍微专业一点的视频,要求如下: 能够做到电脑屏幕.摄像头.安卓操作屏幕三合一 视频剪辑.调音配音 所有工具在 Linux 上 理想效果示意图: 1.软件工具准备 a. 录音软件 Audacity 是一个免费的开源的数字音…
在上一篇文章中,视频和音频是各自独立播放的,并不同步.本文主要描述了如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放的.主要有以下几个方面的内容 视音频同步的简单介绍 DTS 和 PTS 计算视频中Frame的显示时间 获取Audio clock(audio的播放时长) 将视频同步到音频上,实现视音频同步播放 视音频同步简单介绍 一般来说,视频同步指的是视频和音频同步,也就是说播放的声音要和当前显示的画面保持一致.想象以下,看一部电影的时候只看到人物嘴动没有声音传出:或者画面…
AVPacket保存的是解码前的数据,也就是压缩后的数据.该结构本身不直接包含数据,其有一个指向数据域的指针,FFmpeg中很多的数据结构都使用这种方法来管理数据. AVPacket的使用通常离不开下面4个函数: 使用av_packet_alloc来创建一个AVPacket的实例,但该函数并不会为数据分配空间,其指向数据域的指针为NULL. 通常调用av_read_frame将流中的数据读取到AVPacket中. av_packet_free void av_packet_free(AVPack…
本文使用FFmpeg + SoundTouch实现将音频解码后,进行变调变速处理,并将处理后的结果保存为WAV文件. 主要有以下内容: 实现一个FFmpeg的工具类,保存多媒体文件所需的解码信息 将解码后的音频保存为WAV文件 SoundTouch的使用指南 1.从视频文件中提取音频保存为WAV文件 本小节实现从视频文件中提取音频,解码并保存为WAV文件. 在使用FFmpeg解码时,一般的流程是: 打开一个多媒体文件流 得到媒体流信息 查找视频.音频流的index 根据流的index查找相应的的…
之前一直有朋友让自己录一些SharePoint的入门视频,之前没有太多时间,一个巧合的机会收到CSDN学院的邮件,可以在CSDN上发布视频教程,自己就录了一些.说起录视频也是蛮辛苦的,每天下班吃完饭要哄一会儿孩子,九点左右打开电脑去厨房开始写ppt,查一些资料,然后自己先做一下实验,觉得没问题了再开始录制.每天完成也要12点以后了,虽然很辛苦还是一直坚持下来,很多朋友跟我说免费,自己也真的想过,不过生活开销也大,所以还是没有免费. 视频主要就是SharePoint的入门,很多东西都是博客里之前介…
如果直接找视频剪切和合并视频的软件,通常出来的都是大的视频编辑软件或者是有图形界面的剪切软件,大型一点的功能太多安装麻烦,小型一点的功能可能不齐全. 只是简单的剪切或者一下合并一下,还是ffmpeg这个命令行工具最方便和快速. 一.剪切视频 ffmpeg -i input.mp4 -ss 30 -c copy -to 40 output.mp4 剪切从30秒开始到40秒结束的视频. ffmpeg -i input.wmv -ss 30 -c copy -t 10 output.wmv 二.合并视…