
音视频
文章平均质量分 75
byxdaz
十年以上C/VC++开发经验。熟悉网络编程、数据库编程、数字图像处理与识别,熟悉软件工程和项目管理,熟悉linux C/C++开发。
展开
-
FFmpeg录制屏幕和音频
4)设备名称:Windows 需通过 ffmpeg -list_devices true -f dshow -i dummy 查询正确的音频设备名。5)权限问题:Linux/macOS 可能需要 sudo 或音频组权限。6)性能优化:高分辨率录制建议使用硬件加速(如 h264_nvenc)。2)硬件加速(NVIDIA/Intel)1)录制特定窗口(Windows)→ 使用 FFmpeg 库(如。原创 2025-04-03 23:18:41 · 372 阅读 · 0 评论 -
GStreamer开发入门
元素是GStreamer中最基本的处理单元类型功能描述示例Source数据生产者(生成原始数据)Filter数据处理者(转换/修改数据)Sink数据消费者(输出/显示数据)Demuxer解复用器(分离复合流)Decoder解码器(压缩数据→原始数据)Encoder编码器(原始数据→压缩数据)Muxer复用器(合并多个流)关键特性每个元素通过工厂模式创建(元素状态包括:NULL、READY、PAUSED、PLAYING通过可查看元素详细信息// 自定义属性。原创 2025-03-28 12:57:40 · 830 阅读 · 0 评论 -
WebRTC C++开发入门
WebRTC 的 C++ 实现提供了丰富的组件用于构建实时通信应用。原创 2025-03-28 10:23:12 · 1092 阅读 · 0 评论 -
SRT协议
SRT()是一种开源的视频传输协议,专为环境设计,结合了UDP的低延迟和TCP的可靠性,广泛应用于直播、远程制作、视频会议等场景。:SRT协议的官方C/C++实现库,由Haivision和社区维护,提供的流媒体传输能力。支持SRT协议的全部特性(ARQ重传、FEC、AES加密、自适应码率)。跨平台(Windows/Linux/macOS),提供C API和C++封装。与FFmpeg、GStreamer等主流多媒体框架集成。:接收端通过序列号检测丢包,发送NACK(丢包重传请求)。原创 2025-03-27 09:10:42 · 1113 阅读 · 0 评论 -
UDP视频传输中的丢包和播放花屏处理方法
优先选择支持抗丢包特性的编码器(如H.265的NAL单元分片、AV1的帧内刷新)。动态调整码率(如WebRTC的GCC算法),根据网络状况降低分辨率或帧率。:FEC(10%冗余) + 短GOP(30帧) + 接收端错误隐藏。:在发送数据时附加冗余包,接收方通过冗余信息恢复丢失的数据包。:减少关键帧(I帧)间隔,避免因丢失关键帧导致后续帧无法解码。使用Wireshark分析丢包模式(突发丢包或持续丢包)。设置合理的冗余比例(如每5个数据包附加1个冗余包)。:对延迟不敏感的场景(如直播时延允许1~2秒)。原创 2025-03-27 08:48:00 · 932 阅读 · 0 评论 -
PortAudio--PCM播放与采集
PortAudio 是一款跨平台音频 I/O 库,支持 Windows、Linux、macOS 等系统,其核心设计基于异步回调机制,适用于实时音频采集与播放场景。主要负责音频流的采集与播放,其原生接口仅支持PCM格式的原始音频数据处理,不包含内置的音频编码模块。原创 2025-03-25 23:14:45 · 1026 阅读 · 0 评论 -
ffmpeg+QOpenGLWidget显示视频
一个基于 FFmpeg 4.x 和 QOpenGLWidget的简单视频播放器代码示例,实现视频解码和渲染到 Qt 窗口的功能。1)ffmpeg库界面,视频解码支持软解和硬解方式。硬解后,硬件解码完成需要将数据从GPU复制到CPU。优先采用av_hwframe_map函数,失败后再使用av_hwframe_transfer_data2)显示帧数据采用QOpenGLWidget。该类支持YUV420P、NV12、RGB帧数据显示。原创 2025-03-24 16:47:26 · 721 阅读 · 0 评论 -
FFmpeg + Qt 简单视频播放器代码
一个基于 和 的简单视频播放器代码示例,实现视频解码和渲染到 Qt 窗口的功能。原创 2025-03-20 21:43:10 · 433 阅读 · 0 评论 -
利用ffmpeg库实现音频AAC编解码
AAC(Advanced Audio Coding)是一种音频编码技术,出现于1997年,基于MPEG-2的音频编码技术。AAC具有高效的数据压缩能力和较高的音质,适用于各种音频应用场景。例如,在智能设备中,AAC技术被广泛应用于提升用户体验,提供高质量的音频体验。原创 2025-03-20 15:49:32 · 952 阅读 · 0 评论 -
利用ffmpeg库实现音频Opus编解码
参数,编译前需先安装libopus源码并配置动态库路径。最新FFmpeg 7.1版本默认支持Opus的浮点运算优化和VBR/CVBR模式。Opus支持Windows/Linux/macOS平台,编译时需注意不同系统的依赖库路径差异。支持动态调整输出采样率(8k/16k/44.1k/48k)-ac:设置通道数(WebRTC场景强制要求双通道)。-ar:指定输入采样率(支持8k/16k/48k等)。解码后需通过nb_samples获取实际音频帧大小。需在编译FFmpeg时添加。原创 2025-03-20 15:23:03 · 658 阅读 · 0 评论 -
ffmpeg库视频硬编码使用流程
支持从本地YUV文件读取数据、GPU加速编码并输出H.264视频流到MP4文件。原创 2025-03-19 17:54:03 · 672 阅读 · 0 评论 -
ffmpeg库视频硬解码使用流程
FFmpeg 的硬解码(Hardware Decoding)通过调用 GPU 或专用硬件的编解码能力实现,能显著降低 CPU 占用率。原创 2025-03-19 17:25:36 · 1207 阅读 · 0 评论 -
ONVIF
网络摄像机是网络设备,需要有通讯协议,早期的网络摄像机硬件提供商都采用私有协议。随着视频监控的网络化应用,产业链的分工将越来越细。有些厂商专门做摄像头,有些厂商专门做视频服务器,有些厂商则可能专门做平台等,然后通过集成商进行集成,提供给最终客户。私有协议无法胜任这种产业合作模式,行业标准化的接口由此应运而生。ONVIF(Open Network Video Interface Forum)开放型网络视频接口论坛,ONVIF的目的是确保不同厂商的视频产品能够具有互通性。原创 2025-03-16 15:23:54 · 1389 阅读 · 0 评论 -
GB28181开发--SRS+Jessibuca
SRS-SIP做为SIP服务器,与前端设备进行信令交互。SRS做为媒体服务器,与前端设备进行音视频预览/回放。视频播放采用Jessibuca,可以解决播放实时性和H265问题。原创 2025-03-05 23:03:29 · 763 阅读 · 0 评论 -
GB28181开发--ZLMediaKit+WVP+Jessibuca
定位:基于 C++11 的高性能流媒体服务框架,支持 RTSP/RTMP/HLS/HTTP-FLV 等协议互转,具备低延迟(最低 100ms)、高并发(单机 10W 级连接)特性,适用于商用级流媒体服务器部署。定位:基于 GB28181-2016 标准的视频管理平台,实现设备接入(海康、大华等品牌 IPC/NVR)、信令控制、国标级联等功能,支持 NAT 穿透和非国标设备(RTSP/RTMP)转国标协议。依赖:需配合 ZLMediaKit 作为流媒体服务层,处理视频流转发和协议转换。原创 2025-03-04 18:30:42 · 1256 阅读 · 0 评论 -
wireshark3.x版本中导出RTP视频流
wireshark3.x版本中导出RTP视频流原创 2024-12-17 19:30:49 · 332 阅读 · 0 评论 -
ffmpeg 命令图片和视频转换
将d:\image目录下detect前缀jpg文件合并成视频文件,r表示帧率。一张图片生成10帧视频(loop表示帧数。s表示分辨率,宽高必须为2的倍数)。2.3 多少帧分拆一张图片(原始帧率25,每12帧截取一张图片)2.2 间隔15帧采样一帧,图片名字以时间戳命名。2.1 间隔30帧采样一帧,图片名字以帧号命令。一张图片生成10秒视频(t表示时长,单位秒)4、从视频中生成 GIF 图片。5、将 GIF 转化为视频。原创 2024-08-07 13:30:31 · 852 阅读 · 0 评论 -
NVR添加rtsp流模拟GB28181视频通道
以海康NVR为例。在海康NVR网页后台,选择"配置"-->"系统"-->"通道管理"-->"自定义协议",如下图所示:1.1)首先先添加主码流,NVR录像时用主码流,如下图所示:1.2)接着添加子码流,若配置了子码流,预览时建议用子码流,可以节省解码资源,如下图所示:资源路径可以在编码器的后台可以看到(输出设置-->播放地址)原创 2023-09-16 16:38:40 · 2465 阅读 · 0 评论 -
H265视频硬解
硬解,使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等。目前的主流GPU加速平台:INTEL、AMD、NVIDIA。原创 2023-09-05 20:02:34 · 4354 阅读 · 0 评论 -
查看视频文件关键帧间隔
2、通过执行以下命令将FFprobe信息重定位到ffprobe_help.txt文件中便于查看,FFprobe使用方法为:ffprobe.exe [options] [input_file]。-g 标志设置GOP大小(如您所述), -bf 2 表示2 B-帧应插入每组P帧之间,而 sgop 严格执行GOP大小。-print_format: 信息输出格式,支持xml、csv、json、flat、ini。-select_streams: 参数可以是a、v、s分别表示只查看音频、视频、字幕。原创 2023-09-08 17:38:44 · 2801 阅读 · 0 评论 -
h265视频流rtmp推流服务器搭建
执行安装命令 make install,安装完成之后在我们的/usr/local/srs路径下将会有我们的所需要的所有文件。3.2执行 /usr/local/srs/objs/srs -c /usr/local/srs/conf/srs.conf。方法一、可以打开http://ip地址:8080 查看运行状态。./configure 或者 ./configure --prefix=/usr/local/srs。3.1删除进程记录文件。原创 2023-04-06 13:25:33 · 1891 阅读 · 0 评论 -
librtmp优化
librtmp优化原创 2023-02-16 20:40:58 · 2358 阅读 · 5 评论 -
librtmp使用方法
rtmp是常见的一种流媒体协议,它是由Adobe公司提出的一种应用层协议。rtmp传输的是flv格式的封装数据,flv中保存的一般是H.264视频流和AAC音频流。//播放流过程中服务器断开,重连处理。调用ReConnect函数或者RTMP_ReconnectStream函数。//写入流过程中服务器断开,重连处理。调用ReConnect函数或者RTMP_ReconnectStream函数。1、rtmp播放流步骤。3)是否连接服务器成功。2、rtmp发布流步骤。3)是否连接服务器成功。原创 2023-02-13 13:47:16 · 1239 阅读 · 0 评论 -
opencv 图像类型(Mat、图像字节流、Bitmap、BITMAPINFO、CxImage、AVFrame)之间的转换
一、Mat与IplimageMat<-----> Iplimage :直接赋值IplImage *iplImg = cvLoadImage("greatwave.jpg", 1);Mat mtx(iplImg); // IplImage* ->Mat 共享数据// or : Mat mtx = iplImg;cvReleaseImage(&iplImg);...原创 2019-11-17 13:27:56 · 8421 阅读 · 1 评论 -
利用GPAC生成MP4文件
GPAC主要针对学生和内容创作者,代表了一个跨平台的多媒体框架,开发人员可以使用它在 LGPL 许可下制作开源媒体。GPAC多媒体框架兼容范围广泛的流行文件类型,从常见格式(如 AVI、MPEG 和 MOV)到复杂格式(如 MPEG-4 系统或 VRML/X3D)和 360 电影。原创 2023-02-03 13:15:04 · 1315 阅读 · 3 评论 -
nvidia显卡编码并发session限制破解
nvidia 显卡编码并发 session限制 破解翻译 2023-01-17 16:04:17 · 3830 阅读 · 1 评论 -
centos7下mediainfo安装与使用
MediaInfo是一款非常实用的视频参数检测工具,除了可以对视频进行编码分析查询,还可以对音频文件的编码及信息进行检测,该款工具软件是一款免费软件。mediaInfo官方地址:https://mediaarea.net/en/MediaInfo/Download/CentOS。库地址: https://mediaarea.net/download/binary/test.xml文件内容。原创 2022-09-28 09:51:00 · 976 阅读 · 0 评论 -
用Darwin Streaming Server搭建rtsp流媒体服务器
通过vlc搭建rtsp流媒体服务器,vlc支持RTSP over TCP的方式,数据流传输时只支持RTP over UDP。而DarwinStreamingServer服务器能自适应客户端发起的数据传输请求是用TCP方式,还是用UDP方式,如果是UDP方式,交互命令是RTSP over TCP,数据传输是RTP over UDP,如果是TCP方式,交互命令是RTSP over TCP,数据传输是RTP over TCP。一、DarwinStreamingServer介绍与安装1、D...原创 2020-08-16 13:18:59 · 1361 阅读 · 0 评论 -
用vlc搭建rtsp流媒体服务器
在做视频传输客户端开发的时候,经常需要用到流媒体服务,VLC有着非常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。VLC是一种开源的播放器,同时也可以用作流媒体服务器。vlc搭建rtsp流媒体服务器步骤:1、打开vlc,选择流媒体-流2、选择文件选项卡,添加一个视频文件,基本vlc可以播放的都能添加。3、选择流输出参数。这里要选择rtsp,然后点击添加按钮。端口需要主要不能冲突,一般默认的8554即可,路径根据需要设置...原创 2020-08-15 16:20:28 · 3415 阅读 · 0 评论 -
FFMPEG 视频分割和合并
FFMPEG 视频分割和合并一、分割ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4 -ss 指定从什么时间开始 -t 指定需要截取多长时间 -i 指定输入文件 这个命令就是从00秒开始裁剪到00+30=30秒结束,总共30秒的视频。这个命令执行很快,因为只是原始数据的拷贝,中间没有什么编码和解码的过程。执行这个命令后你能得到output.mp4这个...原创 2020-07-01 22:46:02 · 2731 阅读 · 0 评论 -
G726编解码类
//G726EnDecoder.h//G726编解码类(海思G726编解码类)#if !defined(G726_EnDecoder_h)#define G726_EnDecoder_h#pragma once#include <windows.h>#include <stdio.h>#include <mmreg.h>#include...原创 2018-12-07 17:07:01 · 2798 阅读 · 0 评论 -
asf文件转成mp4
//asfToMp4.h#pragma once#include <windows.h>#include "Audio/AudioFrameBuffer.h"#include "AsfFile.h" #include "audio/G726EnDecoder.h"#include "mp4v2/mp4v2.h"#include "libfaac/inc...原创 2018-12-07 17:04:20 · 3735 阅读 · 1 评论 -
FFmpeg新版本(2016年10月份以后) 支持硬件解码
转载链接:http://www.cnblogs.com/wainiwann/p/6972984.htmlFFmpeg provides a subsystem for hardware acceleration.Hardware acceleration allows to use specific devices (usually graphical card or other spec...转载 2019-05-26 19:54:10 · 1630 阅读 · 0 评论 -
FFMPEG视音频编解码零基础学习方法
转自雷神:http://blog.youkuaiyun.com/leixiaohua1020/article/details/15811977在优快云上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着...转载 2018-06-11 12:43:30 · 749 阅读 · 0 评论 -
使用waveOut接口在Windows中播放声音
Windows waveOut教程 本教程将帮助您了解如何使用Windows waveOut接口播放数字音频。根据经验,这些接口函数掌握起来有些困难。在本教程中,我们将会建立一个Windows命令行程序来原始数字音频。注意:本教程假设您熟悉C程序及Windows API的使用。理解数字音频的相关知识也是有益的,但不是必须的。 教程内容: ·转载 2012-03-04 00:01:08 · 14041 阅读 · 0 评论 -
avilib操作avi文件
一、avilib介绍avilib是一个使用c语言编写的库,可以很方便的对avi文件提取帧和生成avi视频文件。如下列出avilib库的代码。/* * avilib.h * * Copyright (C) Thomas streich - June 2001 * multiple audio track support Copyright (C) 2002 Thomas str...原创 2018-10-19 15:58:41 · 5250 阅读 · 0 评论 -
音视频播放
c++实现waveOutOpen音频播放功能https://blog.youkuaiyun.com/xbk123123/article/details/53787287c++实现waveinopen录音功能https://blog.youkuaiyun.com/xbk123123/article/details/53611283DirectSound播放PCMhttps://blog.youkuaiyun.com/leixiaohu...转载 2018-06-30 23:29:36 · 603 阅读 · 0 评论 -
海康摄像头视频实时监控
海康摄像头视频 vlc插件预览视频 自带的Active控件预览视频。原创 2016-06-12 17:27:51 · 20418 阅读 · 9 评论 -
音频采样率转换
采样率转换的开源代码框架有resample、libresample、sndfile-resample、libresample4j等。libresample andsndfile-resample (fromlibsamplerate) (in the Planet CCRMA Distribution).libsoxr, the SoX resampler libraryssrc (fro...原创 2018-09-08 13:02:23 · 14492 阅读 · 2 评论 -
librtmp获取视频流和音频流2
在上篇文章中,使用librtmp库中包流函数(比如:RTMP_ReadPacket,RTMP_ClientPacket等)读取视频数据包,音频数据包。但在实际过程中连接rtmp服务器请求视频流时只能获取到I帧,无法获取P帧,B帧,从而导致视频不流畅,关于无法获取到P帧、B帧数据包与rtmp服务器有关。连接crtmpserver服务器获取视频流时只能获取到I帧,无法获取P帧,B帧;而连接香港卫视的直原创 2017-01-24 21:55:07 · 4133 阅读 · 1 评论