![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 68
ZackZheng999
这个作者很懒,什么都没留下…
展开
-
ffmpeg filter 实现画面旋转
有一些手机设备在拍摄视频时,是通过竖屏拍摄,文件存放时的缩略图也是竖屏但是其分辨率却是横屏的格式。所以在做播放器时,会发现播放时是横着的。究其原因是因为存放时确实是按照横着来存放的,但是在mp4中会有一个参数标志着播放时需要旋转的角度。rotate。1.如何找到标志着需要旋转的角度:在文件格式描述符AVFormatContext的AVStream中有个源数据metadata,用来描述文件的响应信息,将其打印出来发现会有相对应操作的参数,其中就有rotate参数。AVStream *stre原创 2021-11-03 16:42:06 · 2751 阅读 · 5 评论 -
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 · 975 阅读 · 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 · 688 阅读 · 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 · 7003 阅读 · 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 · 751 阅读 · 1 评论