音视频
unfound
这个作者很懒,什么都没留下…
展开
-
VS2012下搭建ffmpeg开发环境
对于VS下编译ffmpeg有32和64位可以选择,同时ffmpeg官网也提供了这两种下载方式。由于兼容性问题,实际开发中选择32位方式较为普遍。开发工具:VS2012ffmpeg: https://ffmpeg.zeranoe.com/builds/ ffmpeg32位vs下环境配置:首先下载版本4.0.1,windows 32-bit下面的Shared和Dev,解...原创 2018-07-17 18:18:37 · 1072 阅读 · 0 评论 -
获取MP4视频关键帧图像,并保存为JPEG格式文件
方法:1.利用ffmpeg对MP4文件进行解码,将原始数据格式转换成AV_PIX_FMT_RGB24格式;对视频解压缩后的数据进行像素格式转换需要用到sws_scale()函数,其详细使用方法可参考FFmpeg源代码简单分析:libswscale的sws_scale()由三个函数完成其转换工作:sws_getContext():初始化一个SwsContext。sws_scale():处理...原创 2019-08-24 11:19:23 · 2666 阅读 · 0 评论 -
RTMP流生成MP4文件方法总结
RTMP流生成MP4文件方法总结Rtmp流生成MP4文件的流程基本上与rtsp流类似,可以参考前一篇RTSP流封装成MP4方法总结:这里主要针对rtmp与rtsp不同的地方进行讲解:1.rtmp流的写法与rtsp流不太一样如果利用ffmpeg进行拉取rtmp流,一般在流末尾添加“ live=1”。例如 “rtmp://10.13.10.251/live/test live=1”。2.针...原创 2019-08-23 22:16:56 · 8993 阅读 · 4 评论 -
RTSP流封装成MP4方法总结
RTSP流封装成MP4方法总结目的:为了方便以后自己进行查看,特把自己在录制学习过程中遇到的问题以及解决办法记录下来,供大家一起进行参考讨论。方法:1.利用ffmpeg进行解码和编码,生成符合MP4v2要求的H264视频流和AAC音频流;2.利用MP4v2对H264和aac进行合并;注意问题:1.确认RTSP流中的音频和视频是否是固定帧率?由于MP4v2库针对固定帧率和非固定帧率有两...原创 2019-08-30 09:41:19 · 10495 阅读 · 0 评论 -
利用ffmpeg录制rtsp流的方法总结(三)
利用MP4v2进行MP4格式封装 最开始只想用最简单的方法实现rtsp流保存为MP4,查找了很多资料,发现mp4v2比较简单,就开始用它进行MP4的封装,后来又实现了用ffmpeg进行格式的封装,发现MP4v2封装的文件效果比较好,同时,对于固定帧率的文件,不用手动写时间戳,只有设置默认的参数,就可以很容易实现音视频的同步。相比较ffmpeg操作流程确实要简单很多,这个毕竟是专门用...原创 2018-08-22 19:53:55 · 4996 阅读 · 1 评论 -
RTSP录制,推流,VGA录制小工具
为了测试的方便,最近写了一款集录制rtsp,rtmp,推流于一体的小软件,与大家分享下。由于不同品牌摄像机rtsp流地址有所区别,目前只支持海康、威海德等,后面会继续完善,提供不同品牌的流地址配置。下载地址:https://download.csdn.net/download/unfound/10619406...原创 2018-08-22 11:51:22 · 3255 阅读 · 1 评论 -
利用ffmpeg录制rtsp流的方法总结(二)
利用ffmpeg进行MP4格式封装不论是利用ffmpeg,还是MP4v2进行MP4格式的封装,前面获取流的操作基本相同。首先是打开RTSP流,这里需要注意的是,在avformat_open_input()函数中设置超时时间,否则没有流时,会发生阻塞。设置代码如下: AVDictionary* options = NULL; av_dict_set(&options...原创 2018-08-18 10:44:39 · 9927 阅读 · 4 评论 -
FFmpeg获取视频时长方法
一般在视频文件写完后,视频的时长会写在视频的头文件内。因此,只需要通过ffmpeg读取文件操作就可以获取视频时长信息。此工程所用ffmpeg版本号为4.0.1 下载地址:https://ffmpeg.zeranoe.com/builds/#include <stdio.h>extern "C"{#include <libavformat/avformat.h>...原创 2018-07-23 09:42:12 · 13403 阅读 · 5 评论 -
Windows下MinGW+MSYS编译ffmpeg方法
对于每个学习ffmpeg的人来说,只有亲自体验这个编译的过程,才会觉得其中的乐趣"无穷"。~~在编译之前,其实ffmpeg官网有提供编译的方法,这个可以作为参考。前期准备:MinGW:https://sourceforge.net/projects/mingw/YASM:http://yasm.tortall.net/Download.htmlFFmpeg库:http://ff...原创 2018-07-27 15:35:39 · 1130 阅读 · 0 评论 -
利用ffmpeg进行音频转码
在进行音频转码前,首先需要查看我们原始音频中的编码格式以及一些重要的音频参数,包括:采样率,采样格式,通道类型等。通过将原始的编码格式,采样率,采样格式,通道类型与目标编码格式,采样率,采样格式,通道类型进行对比,只有其中有一项不符合,我们就可以通过重采样操作,转换为所需要的类型。查看原始音频的编码格式,采样率,采样格式,通道类型方法。最简单的是通过av_dump_format()函数...原创 2018-08-02 21:37:13 · 10952 阅读 · 0 评论 -
利用ffmpeg录制rtsp流的方法总结(一)
这里主要结合平时对音视频的学习,将ffmpeg录制rtsp的方法在这里记录下。首先,一般的录制过程都是按照如下的流程图进行录制,除非某些不存在音频的特殊情况。这个是总体的录制流程,然而这个流程对于推流来说也适用。因此对于流程中每一步的实现,需要弄明白。在进入主题之前,有必要对视频的基础知识有一个了解,这是十分有必要的。这里可以参考雷神的博客https://blog.csdn....原创 2018-07-25 16:22:57 · 22058 阅读 · 1 评论 -
ffmpeg处理断网时,生成一个文件中遇到的问题
由于网络环境不稳定,在实际的录像过程中常常会将录制的文件保存为多个视频文件,后期就需要更多的资源来进行视频合并,并且增加了额外的时间开销。为了解决这个问题,同时考虑到时间的开销以及资源占用率最小,就想出了这样的一个办法,在断网时,av_read_frame()会在达到超时后,返回一个负值,由于同一个摄像机里面的参数都一致,可以沿用前面设置的参数,后面只需要再次打开流,不停的检查是否能连...原创 2018-07-24 17:06:31 · 3169 阅读 · 1 评论 -
将MP4视频和MP4音频合并成MP4文件
由于项目需要,需要将一个mp4文件中的视频和另一个mp4文件的音频合成为一个mp4文件。因此试着将合成的思路记录下来,以便以后进行查看。合成中需要处理的问题:1.当视频和音频时长不一致时,如何处理?以视频的时长为标准,音频时长比视频短时,添加静音帧作为补充;开始时需要处理的问题:第一种情况:视频的开始时间要比音频晚,因此要过滤掉一部分音频,等到达视频开始时间时,才开始将视频和音频数据写入...原创 2019-08-24 18:20:36 · 13113 阅读 · 3 评论