流媒体
文章平均质量分 71
ze言
c/c++ Qt opencv linux
展开
-
Qt与FFmpeg开发指南(三)-- 音频解码
一、前期准备头文件位于#include <libswresample/swresample.h>二、流程图三、代码void fdecode_audio::registerFFmpeg(){ av_register_all();//1、注册所有组件}void fdecode_audio::openAudioStream(QString filename){ //2、打开输入音频文件 formatContentAudio=avformat_原创 2022-01-21 16:33:53 · 1201 阅读 · 0 评论 -
Qt基于FFmpeg实现视频转码——时间基的设置原理
萨达是多少原创 2022-01-21 10:20:47 · 1119 阅读 · 0 评论 -
Qt基于FFmpeg实现视频转码
一、简述转码转码的作用:封装格式的实现 之前博客中提到如何把像素数据编码得到 H264 的压缩码流数据,但是一般的播放工具是没法直接操作h264文件,需要把这样的视频文件封装成带有封装格式的,所以就需要用到转码。二、流程图三、实现效果四、代码transH264::transH264(){ //1、注册 av_register_all(); in_formatContext = avformat_alloc_context(); ..原创 2022-01-21 00:13:07 · 1147 阅读 · 0 评论 -
Qt基于FFmpeg读取摄像头并进行H264编码
一、读取摄像头的基础知识1、读取摄像头用到的类库Libavdevice:可以读取电脑(或者其他设备上)的多媒体设备的数据,或者输出数据到指定的多媒体设备上等。这个库支持以下设备作为输入端:avfoundation、bktr、dshow(本文使用)、fbdev、gdigrab、jack、lavfi、libcdio、openal、vfwcap等支持以下设备作为输出端:alsa、caca、decklink、fbdev、opengl、sndio、xv等2、libavdevice使用头文件:原创 2022-01-20 16:18:13 · 3752 阅读 · 6 评论 -
Qt基于FFmpeg解码本地视频后再编码
一、视频编码基础知识1、纯净的视频编码流程像素数据->压缩编码数据。 例如编码YUV,就是“YUV->H.264”。(本文所介绍)2、一般的视频编码流程将像素流存储为一定封装格式(例如H264等)中。 例如将像素流编程成MP4格式,就是“YUV->H.264码流->MP4”。二、FFmpeg编码流程三、实现效果四、核心代码fcode_h264::fcode_h264(){ av_register_all();//1、注册组件}..原创 2022-01-19 00:03:44 · 1433 阅读 · 2 评论 -
Qt之FFMpeg 实现视频解码、编码、转码流程详解
一、FFmpeg模块分类libavformat,格式封装,包含了多媒体格式的分离器和混流器的库libavcodec,包含音频/视频解码器和编码器的库libavutil,包含简化编程功能的库,如通用音视频工具,像素、IO、时间等工具libavfilter,包含媒体过滤器的库,可以用作音视频特效处理,添加滤镜、水印libavdevice,包含输入输出设备的库,如摄像头、拾音器libswscale,视频图像缩放,像素格式互换的库libavresample,libswresample,重采样,类似原创 2022-01-17 00:36:29 · 4030 阅读 · 0 评论 -
QT+ffmpeg+多线程的视频播放器的基本使用
一、简述视频播放器实质是快速的播放图片,一般情况下,人的眼睛一秒可以扫过25帧图片,这样看起来有视频播放的效果。有的人可能会想到通过把视频全部解码完,然后把解码后得到所有的图片保存下来再开始播放,那么问题来了,如果这个视频非常的大(有好几百兆),就会导致播放器都打开了迟迟没有响应的情况,使得体验感大大下降。因此,我们可以进行边解码边播放,才有时效性,所以就引入了线程实现并发(详见我的博客:多线程的简单使用,这里不做过多阐述),下面就来实现边解码边在窗口播放的效果。二、实现效果三、基本实现原创 2022-01-15 23:27:50 · 3385 阅读 · 4 评论 -
Qt与FFmpeg开发指南(二)-- 本地视频的解码
一、开发前的准备工作(详见Qt与FFmpeg开发指南(一))开发工具为Qt5.8,目录结构:bin:工作和测试目录 include:ffmpeg头文件配置目录 lib:ffmpeg静态库配置目录 ......二、编解码基础知识(1)封装格式指音视频的组合格式,常见的封装格式(带后缀的音视频文件)有wmv,avi,rmvb,mp4,mp3,flv,mkv等等(2)编码格式就像wmv这种格式而言,一般包含有视频和音频。视频的编码格式为YUV420P,音频的编码格式为PCM。所以通原创 2022-01-15 13:46:54 · 992 阅读 · 0 评论 -
Qt与FFmpeg开发指南(一)--Windows下环境搭建
一、下载ffmpeg开发库:下载地址:Qt5.8使用FFmpeg开发库-C/C++文档类资源-CSDN下载下载的压缩包中含有已经打包好的dll文件夹以及ffmpeglib(包括include和lib等)文件夹二、配置1、使用QtCreator创建完项目后,在项目根目录下创建ffmpeglib文件夹2、把下载好的include文件夹和lib文件夹拷贝到ffmpeglib文件夹中3、把dll文件夹中的所有.dll文件拷贝到项目根目录下的debug文件夹中(或项目根目录下也可以)4原创 2022-01-15 11:23:19 · 618 阅读 · 0 评论 -
Qt基于FFmpeg解码本地视频生成RGB数据
一、获取RGB像素数据的步骤:二、实现效果:将获取RGB像素数据每25帧保存一张图片到本地三、核心代码: int count = 0; while(av_read_frame(formatContent,pkt) == 0)//成功读到了数据,一帧一帧读 { /*AVPacket->AVStream,要判断读到的每一帧的码流数据是不是视频流*/ if(pkt->stream_index == videoType)原创 2022-01-14 22:59:40 · 1164 阅读 · 1 评论 -
Qt使用QImage保存成JPG(PNG)图像到本地
一、QImage类简介QImage提供了一个与硬件无关的图像表示方法,允许直接访问像素数据,可用作绘图设备。 QImage类支持QImage::Format、enum描述的多种图像格式。包括8-bit, 32-bit 和alpha混合图像 QImage 提供很多可以用于获取图像信息和进行图像变换的函数。 QImage继承自QPaintDevice,可以使用QPainter直接绘制到图像上。 Qt提供了QImage、QPixmap、QBitmap和QPicture四种处理图像数据的类。QImag原创 2022-01-14 22:48:35 · 26833 阅读 · 1 评论 -
Qt基于FFmpeg解码本地视频生成YUV文件并播放
一、获取并写入YUV像素数据的步骤:二、实现效果:用YUV Player Deluxe打开YUV文件并播放(分辨率800*368)三、核心代码: /*1、注册*/ av_register_all();// //参数:1双指针定义一颗星*,2要打开流的路径(文件名) //AVFormatContext保存视频(视频流)相关信息的结构体 AVFormatContext * formatContent = avformat_alloc_co原创 2022-01-14 12:26:44 · 957 阅读 · 2 评论 -
Qt基于FFmpeg解码本地视频生成H264文件并播放
一、获取H264码流数据的几个步骤:二、实现效果:用eseye_u.exe打开H264文件并播放三、核心代码: //解封装 打开视频文件看有没有视频流 查找打开解码器 得到一帧码流数据(解码操作) /*1、注册*/ av_register_all();// //参数:1双指针定义一颗星*,2要打开流的路径(文件名) //AVFormatContext保存视频(视频流)相关信息的结构体 AVFormatContext * f原创 2022-01-14 01:09:35 · 1172 阅读 · 0 评论