自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zack's program career

growing up to be a master

  • 博客(13)
  • 问答 (1)
  • 收藏
  • 关注

原创 ffmpeg filter 实现画面旋转

有一些手机设备在拍摄视频时,是通过竖屏拍摄,文件存放时的缩略图也是竖屏但是其分辨率却是横屏的格式。所以在做播放器时,会发现播放时是横着的。究其原因是因为存放时确实是按照横着来存放的,但是在mp4中会有一个参数标志着播放时需要旋转的角度。rotate。1.如何找到标志着需要旋转的角度:在文件格式描述符AVFormatContext的AVStream中有个源数据metadata,用来描述文件的响应信息,将其打印出来发现会有相对应操作的参数,其中就有rotate参数。AVStream *stre

2021-11-03 16:42:06 2532 5

转载 windos下编译ffmpeg生成dll、lib库(开启265)

编译环境Win 64位+MSYS2一.安装MSYS21.下载msys.exe,https://www.msys2.org/2.安装msys3.运行msys并执行命令pacman -Syu,一律输入Y同意,执行结束后会自动关闭,再次打开msys后执行pacman -Syu4.执行下列命令安装依赖包复制代码pacman -S makepacman -S diffutilspacman -S yasmpacman -S nasmpacman -S mingw-w64-x86_64-gccp

2021-10-28 10:09:35 2534

原创 windows API waveout 双缓冲区播放pcm实时语音流

直接上代码网上都是播放本地文件的,对于播放实时语音流的文章比较少。先记录一下,之后有空了整理成一个小demo再好好写一下if (m_hHandle == INVALID_PLAYER_HANDLE)//先进行初始化,只做一次。{ wfx.wFormatTag = WAVE_FORMAT_PCM;//设置波形声音的格式 wfx.nChannels = 1;//设置音频文件的通道数量 wfx.wBitsPerSample = 16; wfx.nSamplesPerSec = 8000;//设置每

2021-09-02 17:10:06 888 1

原创 如何去掉RTP头或RTP拓展头

当我们接收RTP承载的音视频数据,并且使用一些开源的播放库时,都需要先将RTP的头去掉,若RTP头是没有带拓展数据的,那去掉相对应的12个byte就可以,但是当带有RTP拓展头时就比较麻烦。RTP标准头1. RTP头带有RTP的相应信息(1) V:RTP协议的版本号,占2位,当前协议版本号为2(2)P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。(3)X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头(4) CC:CSR

2021-08-31 17:29:07 639 1

原创 ffmpeg推流 av_dict_set 参数设置解析(降低延时、处理花屏、改善画面质量)(实时更新)

一、关于影响时延的参数设置1.preset :指定编码的配置。x264编码算法有很多可供配置的参数,不同的参数值会导致编码的速度大相径庭,甚至可能影响质量。为了免去用户了解算法,然后手工配置参数的麻烦。x264提供了一些预设值,而这些预设值可以通过preset指定。这些预设值有包括:ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow和placebo。ultrafast编码速度最快,但压缩率低,生成的文件更大,placeb

2021-08-19 16:08:19 15886 1

原创 FFmpeg+dxva2 H265硬解码 下方出现绿条或被下方拉长

H265的编码格式,显示下面有一块绿色,并且绿色上面一点有被拉长的现象。主要原因是缓冲分辨率比视频分辨率多出一点宏块,传入高时减去多出来的宏块数量,或者直接传入视频分辨率即可。在ffmpeg_dxva2.cpp下找到dxva2_create_decoder(AVCodecContext *s)中的 /* the HEVC DXVA2 spec asks for 128 pixel aligned surfaces to ensure all coding features have e

2021-05-31 17:53:22 1706 1

原创 ffmpeg 推流 在H264中插入SPS、PPS 头

1.SPS PPS 头在编解码H264时非常重要,里面不仅包含了许多关于视频流的相关信息:比如宽高等。还标志着一个视频流的开头。一般视频流前开头第一帧是SPS 第二帧是PPS 第三帧才是I帧。目前在网上看到加入SPS PPS头都是在解码时加入,解码时加入ffmpeg有个特别的过滤方法av_bitstream_filter_filter()。编码目前只能深入了解编码底层,找到I帧并且在I帧前插入SPS PPS头。否则即使你是使用ffmpeg编码的视频流,用ffplay播放也是缺少SPS PPS头的。对于是

2021-03-18 16:38:46 6451 7

原创 使用SDL2中SDL_CreateWindow()函数时报错跳进wincore.cpp(wntdll.pbd not load)

这一般是在使用MFC时会出现的问题抛出错误:Unhandled exception at 0x77784460 (ntdll.dll) in ffmpeg.exe: 0xC000041D: 用户回调期间遇到未经处理的异常。因为SDL和MFC在同一条线程上,SDL_Window *screen =SDL_CreateWindow ("123",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED, screen_w, screen_h, SDL_WINDOW_O

2020-12-18 20:44:39 729 1

原创 关于CentOS 7(Linux)下 软件|脚本 的自启动

这里介绍了三种方法,原理是网络上常见的方法,前面两种方法运用的是修改/etc/rc.local这个方法和将脚本放入/etc/rc.d/init.d的这个方法。但是按照步骤操作的时候却一直有意向不到的问题出现,中间有一些坑或者小细节网上没有详细记录到,所以这里记录一下我自己对于这些问题踩的坑。方法一:修改rc.local实现自启动(首先保证你在脚本目录下脚本可以正常运行,也就是脚本没问题)1.自写脚本myscript中加入PROC_PATH,PROC_PATH=“当前应用程序的文件位置”,并且在star

2020-09-24 10:40:00 1179

原创 MFC 视频播放器实现局部放大功能

这里介绍一种从MFC获取视频播放框并拉大的方法(还可以用一种在渲染部分拉大画布的方法)其原理其实很简单,就是使用MoveWindow()的方法来进行放大和移动。这里用的是鼠标双击后放大鼠标当前位置的一个小矩形框。所以可以获取鼠标的point。1.在播放视频的DIALOG里面获取当前播放框 CRect curRect; GetClientRect(&curRect);2.确定当前需要放大的倍数,确定放大后的框长和宽(z为倍数)。 normalWidth = curRect.rig

2020-09-17 16:15:57 1353 2

原创 MFC树型控件 搜索并展开高亮指定树节点

项目需要做一个关于目录树节点的搜索功能先讲一下大概思路,大部分人都会从根节点一步一步地往下展开,不断地迭代搜索,但是这个方法比较麻烦,因为要不断地记录父节点,一层一层往下,有几层就要记录几个父节点。我通过map存储的树节点搜索到后,打开其父节点,发现虽然上面几层没有展开,但是最里面的是展开的。那么就有了这么一个思路,从下往上展开。TreeItemMap::iterator connIter = PointItemMap.begin(); for (; connIter != PointItemMa

2020-09-08 11:53:58 1349

原创 Jupyter中显示数据data时只显示省略号不显示完整数据

在开头导入pandas后加入以下:设置行不限制数量pd.set_option(‘display.max_rows’,None)设置列不限制数量pd.set_option(‘display.max_columns’,None)修改过后下次再次使用时就还是根据这次设置,不会限制数据数量。若在写代码过程中觉得数据太长妨碍上下对比可在data后加head()只显示头一部分如data...

2020-03-08 01:39:02 8844

原创 Jupyter 中 ValueError: Duplicate names are not allowed.的问题解决

如图显示这类错误问题就是pd.read_csv出现错误,数据中输入数据名的数量与数据列数不符合,仔细检查所输入的列名称是否与数据对应。如果检查没有问题,那就是该read.csv命令未将最后一列中的零识别为值,因此程序将其读取为好像第一行所包含的字段少于字段数列,因此将第一列用作行名。最后实在不行就修改一下数据...

2020-03-08 01:27:34 6608 1

空空如也

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

TA关注的人

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