
音视频
文章平均质量分 69
jwybobo2007
站在脚下看世界
展开
-
linux音视频采集技术: v4l2
在 Linux 系统中,视频设备的支持和管理离不开 V4L2(Video for Linux 2)。作为 Linux 内核的一部分,V4L2 提供了一套统一的接口,允许开发者与视频设备(如摄像头、视频采集卡等)进行交互。无论是视频采集、处理,还是编码和显示,V4L2 都提供了强大的支持。本文将简单介绍一下 V4L2 的工作流程以及如何使用它进行视频采集。v4l2并没有提供单独封装的API接口,而是通过 ioctl 系统调用以及v4l2所提供的特定参数来对设备进行控制和采集。:查询设备能力。原创 2025-01-07 15:37:54 · 1199 阅读 · 0 评论 -
windows下搭建运行mediasoup-demo
从官网下载最新的LTS版本安装包后直接安装,我本地目前使用的版本是 v20.9.0。如果对npm默认源的访问有限制,那就需要使用代理或者修改源地址。原创 2024-12-12 17:07:04 · 727 阅读 · 0 评论 -
linux下avi文件解析(附源码)
前段时间由于项目需要,要解avi文件,当时我第一时间想到用ffmpeg来处理,但想想觉得太大了,又是放到arm上跑的,感觉没必要。然后,搜索引擎上稍微搜了一下,没找到有用的示例,大部分都是利用windows的api进行读写,很明显linux下用不了。结果花了2-3天时间研究并写了一个avi文件的解封装代码,但是后来因某些原因没有去使用AVI了,所以代码也没进行后续的完善优化。这里贴出来供记录以及需原创 2012-06-18 16:57:18 · 5993 阅读 · 17 评论 -
rtp h264注意点(FU-A分包方式说明)
之前写过一篇文章,分析了h264使用rtp进行封包的格式介绍:RTP封装h264。但里面好像没有把拆分以及一些需要注意的情况说清楚,因此这里做补充,也作为自己的备忘(自己记性好像不太好)。关于时间戳,需要注意的是h264的采样率为90000HZ,因此时间戳的单位为1(秒)/90000,因此如果当前视频帧率为25fps,那时间戳间隔或者说增量应该为3600,如果帧率为30fps,则增量为原创 2012-02-06 11:01:43 · 13613 阅读 · 16 评论 -
【WebRTC】web前端+nodejs测试demo
1.服务端使用nodejs搭建,使用的module为express、nodejs-websocket。实现了简单的信令协商,代码如下:// server.jsvar ws = require("nodejs-websocket");var fs = require('fs');var https = require('https')var express = require('express');var app = express();var userList = {};var原创 2020-09-07 11:23:45 · 1427 阅读 · 1 评论 -
【WebRTC】几个重要sdp参数说明
o=- 2833773620626745940 2 IN IP4 127.0.0.1s=-t=0 0// ice模式: full / lite, 设置lite表示始终为controlled,不需要发起STUN binding探测,只需要回复 binding response, 在开发SFU服务时非常有用, 只需要服务器一方设置为lite (都为full时, 双向探测;都为lite时, 互不探测)a=ice-litea=group:BUNDLE 0 1a=msid-semantic: WMS i.原创 2020-09-07 15:53:48 · 5299 阅读 · 0 评论 -
RTP序列号以及时间戳是否回绕的判断
int isNewerSequenceNumber(uint16_t sequence_number, uint16_t prev_sequence_number) { return sequence_number != prev_sequence_number && ((uint1...原创 2019-12-17 17:55:59 · 1011 阅读 · 0 评论 -
flv文件AVCDecoderConfigurationRecord以及AudioSpecificConfig结构
H264和AAC数据流 RTMP推送的音视频流的封装形式和FLV格式相似,由此可知,向FMS推送H264和AAC直播流,需要首先发送"AVC sequence header"和"AAC sequence header",这两项数据包含的是重要的编码信息,没有它们,解码器将无法解码。 AVC sequence header就是AVCDecoderConfigurationReco原创 2013-07-02 10:08:55 · 18690 阅读 · 4 评论 -
RTP封装h264
文章部分借用网上搜索到的资料网络抽象层单元类型 (NALU):NALU头由一个字节组成,它的语法如下: +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | +---------------+F: 1原创 2011-12-08 17:41:17 · 27487 阅读 · 9 评论