自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于ffmpeg视频快剪

自定义QWdiget实现一个双向滑块,为了更直观的设定剪辑点。前后滑动和seek,支持逐帧播放,要快速显示。对剪切点的矫正,保证剪辑所见即所得。

2024-04-22 13:39:00 126

原创 卡雷尔机器人学c++

斯坦福大学的学生开发过一款编程游戏,卡雷尔机器人学java。我在大学时候学java的时候接触过,它本身是以eclipse插件形式运行,我开发了一个完全复刻的c++版本,并在原有基础上扩展了程序编辑器高级功能,支持动态执行您的代码,控制卡雷尔机器人的行为。以下是一些演示视频,包含早期版本。

2024-03-06 21:12:53 214

原创 OBS插件开发(二)推流实时曲线

3,主要用于前端推流状况可视化,异常报警,及时性,无人值守直播。1,自定义QWidget图表绘制 ,动态更新。不发视频了,截个图算了,嫌麻烦。2,OBS直播帧率,码率监控。

2024-03-06 21:04:42 245

原创 ffmpeg全景视频转普通视角视频的filter开发

ffmpeg 全景视频 滤镜

2024-01-12 18:51:05 637

原创 obs插件开发~直播助手

大公司都得有自己的直播助手,我们公司也跟风,让我做一个obs插件,直播助手,实现的功能包括但不限于上面截图,比如还做了弹幕显示,还有一些逻辑,截图也反应不出来。不一一废话了。整个UI层面全自己来,没产品,没设计,平民版,针对特定人群,能用就行。目前已经上线,经受考验。技术难度不大。

2022-10-26 00:51:37 1139 1

原创 上线云导播台

前面是PVW信号面板的媒体流,以前做过桌面系统导播台,后来公司需要开发一个云导播台,所以做了一版,为了降低前端开发难度,就直接把前端操作全部封装在一路流中,这个思路也是参考七牛云导播台的方式,坑不少。目前已上线,经受考验

2022-10-26 00:40:41 570 2

原创 SRS扩展gop策略,缓存1-2gop

默认的srs缓存gop长度是0到1gop,所以延迟也是0到1gop,但是实际有个需求,是做公司内网转发直播,通过内网观看直播(大型晚会,重大直播),解决外网带宽瓶颈。监于srs默认延迟不符合需求,所以二次开发,扩展了一个字段,conf配置后,可是gop缓存长度为1-2gop,增加延迟,最大限度操作播放流畅。其实srs源码开发并不难,没啥好说的,技术上不难实现。有需求的朋友可以私信我

2022-10-26 00:23:14 438

原创 obs源码二次开发,自定义插入SEI

平台win10,基于vs2019编译,现已完成:1,透传媒体源(输入源)的SEI给输出output2,obs增加了一个socket http 服务(主要为了轻量级),通过接口传入SEI3,RTMP错误时dump打印发送的16进制数据

2022-01-11 15:22:35 1039

原创 流监控(二)

之前博客介绍过实现七牛云后台那样的码流监控曲线。但是不能满足我的需求。我们测试的时候,经常需要知道卡顿检测,画面跳帧(丢画面),音频丢帧,已经在什么时间点出现,且为什么出现的,需要有数据回放。所以我升级了监控。这个界面下面是一个滚动list, 用于打印重要的日志。码率数据的详细情况,由于数据量比较大,所以写到日志文件中。附上截图最重要是做卡顿检测,不用再人眼去盯着播放器,是不是卡顿了。什么时候卡顿了。目前程序的卡顿检测,和ffpaly的播放观看,是非常同步的。...

2020-06-03 19:19:44 312

原创 博主实现的流监控

上图是七牛的流监控,下面是我做的一个高仿版,基于ajax每5秒刷新(异步获取数据)

2019-12-24 10:55:30 225

原创 ubuntu编译支持h265的ffmpeg,ffplay

ffmpeg2.8.1x264-snapshot-20170521-2245x265-3.2SDL-1.2.15Ubuntu14.041.ffmpeg扩展h265,参看金山云的github。修改了三个文件。2.x265编译很简单,弹出一个dos窗口的时候,先按c,再按g,“一直下一步”。没什么好说的,网上查。推荐是static编译3.SDL编译,我的版本是2.8....

2019-10-15 16:40:14 1737

原创 H.264码流分析器,雷霄骅版本人修改版

雷霄骅自然不必多介绍,做音视频开发的无人不知无人不晓,雷神在h264bitstream基础上做了一版,不过代码bug也遗留不少。目前已知bug,1.slice header解析器中sps pps未保存,导致实际的slice header解析其实是有问题的。原因在h264_stream_t对象每次被清空2.OnItemchangedVH264Nallist函数被多次响应3.read_...

2019-08-26 14:58:26 1967 6

原创 ffmpeg实现视频实时动态时间水印

首先看下效果左上角的实时当前时间,纯c完成。下面的是hello ffmpeg字样是avfilter的drawtext实现。动态时间水印,其实ffmpeg有命令可以实现,不过我在windows下发现用不了,而且转换出来的图片会质量变差。所以想着自己用C去实现。上面的2019-07-02 16:30:46 这些是在android下,用canvas drawtext每一个字符,然后生产对...

2019-07-02 16:47:44 7716 9

原创 让大疆灵眸 OSMO 口袋云台相机支持直播

https://www.dji.com/cn/osmo-pocket?site=brandsite&from=landing_page这是大疆灵眸 OSMO 口袋云台相机的产品官网。该产品可以录制高清1080p mp4或mov格式的视频。但是并不支持直播。录制mp4是实时的,熟悉mp4的格式的朋友都知道,moov在文件尾的mp4是不能解析的。因为所有的音视频帧时间戳,datas...

2019-06-24 14:26:49 21803 6

原创 博主Qt+ffmpeg实现的导播台

支持画中画音频试听PV画面,PG画面预览支持输入流不同帧率音视频同步(同源)

2019-01-18 20:12:44 1303 2

原创 windows下MinGW编译ffmpeg+x264+lame+fdk-aac

关于编译环境的搭建,网上很多,主要说下编译中遇到的坑,ffmpeg2.8.1x264-snapshot-20170521lame3.99.5fdk-aac-0.1.4mingw32-4.8.2.rarMSYS-1.0.11.rarglib_2.26.1-1_win32.zip ,pkg-config_0.26-1_win32.zip,coreutils-5.3.0-...

2018-04-08 16:04:58 3279

原创 FFmpeg+SDL2音频播放器

基于雷神最简单的音频播放器修改。/*** 最简单的基于FFmpeg的音频播放器 2* Simplest FFmpeg Audio Player 2** 雷霄骅 Lei Xiaohua* [email protected]* 中国传媒大学/数字电视技术* Communication University of China / Digital TV Technology* ht

2018-01-11 16:53:22 1110 2

原创 ffmpeg和c++11 std库同时使用的报错信息

ffmpeg和c++11 std库同时使用时,你如果发现上面的错误,请删掉ffmpeg include目录下的stdint.h文件,是删掉文件,不是代码里面去掉引用。必须是删掉这个文件。

2018-01-02 16:13:32 617 1

原创 接上篇博客,更换成AudioFifo音频转码

之前的ffmpeg的博客,大多用audiofifo做音频转码,并没有用avfilter,当然相比较来说,AVFilter更加简单,适合无脑上手。不过其实它底层也是用fifo实现。下面我们自己实现fifo。重点理解音频pts的计算。还有重采样。 这里只上dbt_rtmp.h和dbt_rtmp.cpp的代码,队列部分代码不用变。//dbt_rtmp.cpp#include <dbt_rtmp.h>v

2018-01-02 16:02:18 963 1

原创 ffmpeg多线程本地mp4 rtmp推流,h264+aac编码

程序说明:使用了c++11的std线程,锁,信号量等东西,替换了pthread多线程。主要之前用windows下移植的linux发现多线程始终有问题,所以决定用原生的试试。不过现在想来,应该问题还是我队列的设计问题。主要这里有个坑,就是c语言for循环内部的局部变量的内存地址是不变的,所以如果在for循环里面给指针赋值,一定要特别注意。 这次的程序编写过程中遇到很多坑。malloc生产的avfra

2018-01-02 14:36:49 5460 1

原创 c++11 多线程实现生产者消费者模型

#include <stdio.h>#include <iostream> #include <thread>#include <mutex>#include <condition_variable>#include <queue>using namespace std;const int length = 5;int buffer[length];int read_index;i

2017-12-29 22:13:54 377

原创 pthread

1.pthread_create(pthread_t thread,const pthread_attr_t *attr,void (start_routine) (void),void *arg); 线程id,线程属性,线程创建之后执行的函数,start_routine的函数的传参 void (*start_routine) (void) 是函数指针,void* 是函数返回值类型,start

2017-12-13 14:19:46 223

原创 avcodec_copy_context() copy方式实现h264和mp3合成mp4

/**实现h264和mp3合成mp4通过avcodec_copy_context()函数可以将输入视频/音频的参数拷贝至输出视频/音频的AVCodecContext结构体。不涉及编解码*/#include <stdio.h>#include <stdint.h>extern "C"{#include "libavcodec/avcodec.h"#include "libavform

2017-12-12 15:30:54 1381

原创 yuv,pcm合成mp4

代码涉及音频编码,视频编码,pts计算,可参考前面的几篇博文,已经模块化 这里pts计算直接使用outputStream的时间基,不存在inputStream转outputStream时间基的问题。因为yuv和pcm都是裸数据,no pts。所以直接写pts值就行。如果是从aac和h264合成mp4那么就需要做输入输出流的时间基转换了。关于时间基的理解和转换,参考上篇深入理解pts,dts,tim

2017-12-12 10:06:37 2613 3

原创 yuv420转h264

注意视频的AVCodecContext需要设置哪些参数,还有avcodec_encode_video2编码出来的AVPacket是不是空(部落格它为空,got_packet_ptr为0)和max_b_frames有关。另外视频的flush,和音频同理。#include <stdio.h>#include <stdint.h>#include <cstring>#include <malloc.

2017-12-08 11:25:15 2457

原创 yuv图片旋转180度,镜像水平翻转

接着上篇文章,如果得到的yuv是倒的,但我希望得到正的图,即将左边的yuv_out.yuv旋转180度,希望得到右图rotate180.yuv 这里需要理解,yuv420p图片,宽w,高h,图像分辨率是w*h,但是并不是说图像在内存中就是w*h的“正方形”内存大小,它的实际内存是超过w*h的,具体是y占了w*h,然后接着u占了w/2*h/2,接着是v占w/2*h/2。 图像旋转180度,则原图的

2017-12-07 11:06:47 6956

原创 ffmpeg swcale实现rgb24转yuv420p

我测试的rgb素材是BGR24的,如果你的 rgb数据是AV_PIX_FMT_RGB24格式,请自行替换#include <stdio.h>#include <stdint.h>#include <cstring>#include <malloc.h>extern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avfo

2017-12-06 18:43:12 2478

原创 两张yuv图片叠加

程序实现将一个400x400的yuv420p小图,覆盖在一张640x480的yuv420p大图上#include <stdio.h>#include <stdint.h>#include <cstring>int main(int argc, char **argv){ int sw = 400, sh=400; int bw = 640, bh = 480; FILE*

2017-12-06 18:40:20 2668

原创 视频保存为yuv文件

视频保存yuv文件,应考虑转换成什么yuv文件格式以及为什么要转换格式,还有改变视频画面宽高,核心函数是sws_scale/*** 本程序实现了视频文件解码为YUV数据。**/#include <stdio.h>extern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "l

2017-12-05 15:13:10 4411 5

原创 rgb24转yuv420p

有几个关键点:首先yuv420p的采样规则一定要明白。代码中注释已经写明了,还有rgb的数据,是不是倒序,还有是rgb排序,还是brg排序,根据rgb数据源的不同,程序处理也会不一样。#include #include #include #include typedef struct

2017-12-04 18:10:39 1221 1

原创 mp3转aac,用AVAudioFifo缓冲pcm数据

#include <stdio.h>#include <windows.h>/*音频转码器mp3->aac*/extern "C"{#include "libavcodec/avcodec.h"#include "libavutil/audio_fifo.h"#include "libavformat/avformat.h"#include "libavutil/avstring

2017-11-30 13:54:08 2319 1

原创 C/C++中数据类型在不同平台下所占字节数

标准的32位的系统: char 1个字节 short 2个字节 int 4个字节 long: 4个字节 float: 4个字节 double: 8个字节 long long: 8个字节16位,32位,64位平台固定的 float:4个字节 double: 8个字节跨平台运用 typedef signed char int8_t; typedef sho

2017-11-23 10:29:07 1181

原创 ffmpeg MP3转wav

#include <stdio.h>/*音频mp3->wav*/extern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"#include <libavut

2017-11-22 15:36:57 5260

mysql-connector-java-5.0.8-bin.jar

mysql的jdbc驱动包

2012-11-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除