phz76 / desktopsharing Goto Github PK
View Code? Open in Web Editor NEW桌面共享, 支持RTSP转发, RTSP推流, RTMP推流。
License: MIT License
桌面共享, 支持RTSP转发, RTSP推流, RTMP推流。
License: MIT License
我是java开发,目前在找推流的工具,你这个好像很符合我的需求。
so...能不能直接编译个exe可执行的文件给我,感谢!
我的邮箱是 [email protected]
int DXGIScreenCapture::AquireFrame()函数里面的
hr = d3d11_context_->Map(rgba_texture_.Get(), 0, D3D11_MAP_READ, 0, &dsec);
if (!FAILED(hr)) {
if (dsec.pData != NULL) {
image_ptr_.reset(new uint8_t[image_size_]);
memcpy(image_ptr_.get(), dsec.pData, image_size_);//这一行有问题
}
d3d11_context_->Unmap(rgba_texture_.Get(), 0);
}
memcpy(image_ptr_.get(), dsec.pData, image_size_);应该改为
for (int y = 0; y < GetHeight(); y++)
{
memcpy(image_ptr_.get() + y * GetWidth() * 4, (uint8_t *)dsec.pData + y * dsec.RowPitch, GetWidth() * 4);
}
我想实现声卡采集的功能但不知到从哪下手
大佬你好,看了下转推rtsp的功能,是把捕捉的本地屏幕转推到了某个地址,请问下支持ipc吗,如海康的摄像头
把程序内部2处19201080改成38402160后 在3840*2160桌面启动rtsp后会崩溃
使用x264编码时,推流正常。改用qsv硬编码的时候,显示推流正常连接,但是拉流一直没有显示。
Hi PHZ76,
您好,我是来自**的工程师 William
我在GitHub上看到您DesktopSharing的专案
有几个问题想跟您请益,若您方便的话,就烦请您指导了
我才刚开始研究DXGI与RTSP不久,如果有什么问得不清楚的还请您见谅
目前在DXGI + RTSP的这个架构下,就算我把VLC的network-caching的值改为0,还是会有些许的延迟(0.3s~0.5s),如下图
这个部分是架构上的限制导致的吗? 或是还有机会可以改善?
不知道您有没有什么建议的方向(例如:从nvenc或是从RTSP方面着手),因为我想针对这个部分去研究,让延迟能再低一点
您在code里面有进行FPS的统计,我也有更改avconfig.framerate的数值为120,输出的FPS确实有改变
但是,若我使用手机的VLC播放器,并用Gamebench去测试FPS,却仅能跑到60的FPS
这个会是因为手机版本的VLC所导致吗? 还是手机硬体的影响(我使用ASUS Zenfone3)?
不知道您有没有什么建议的方向可以让我去Debug?
因为我不太会简体中文,文字内容是翻译的结果,如果有用词不精确的部分还望你海涵
另外客户端解码GPU占用率很高,丢帧率高造成画面卡顿。 刚开始学不知道为,希望大佬能够解答。
不想采集全屏,想指定部分区域
录屏推流一段时间后,视频流是正常在推送,但是画面会卡住不动
在 1680 * 1050 显示分辨率下, 编码的视频花屏, 大佬请看看可能是啥问题
General
Complete name : F:\download\desk.h264
Format : AVC
Format/Info : Advanced Video Codec
File size : 15.1 MiB
Writing library : x264 core 160
Video
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L4
Format settings : 1 Ref Frames
Format settings, CABAC : No
Format settings, Reference fra : 1 frame
Format settings, GOP : M=1, N=25
Bit rate : 9 000 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.174
Writing library : x264 core 160
Encoding settings : cabac=0 / ref=1 / deblock=0:0:0 / analyse=0:0 / me=dia / subme=0 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=4 / lookahead_threads=4 / sliced_threads=1 / slices=4 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=0 / keyint=25 / keyint_min=2 / scenecut=0 / intra_refresh=0 / rc_lookahead=0 / rc=cbr / mbtree=0 / bitrate=9000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=9000 / vbv_bufsize=9000 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=0
Would it be possible to support different video encoders like motion jpeg, PNG, etc?
我打开 sln 应用是x86的
没有看到 rtp 的分包处理,在单个 NAL 比较大时有问题,超过 65535
if (pkt->data[4] == 0x65 || pkt->data[4] == 0x6)
大神, 这里为什么sei也要加sps啊?
hr = dxgiOutput1->DuplicateOutput(d3d11_device_.Get(), dxgi_output_duplication_.GetAddressOf());
std::cout<<(int)hr<<std::endl;
if (FAILED(hr)) {
/* 0x887a0004: NVIDIA控制面板-->全局设置--首选图形处理器(自动选择) */
printf("[DXGIScreenCapture] Failed to get duplicate output.\n");
Destroy();
return false;
}
您好 ,rtmp的推流,不支持域名的推流,可能需要完善
Great project.
I would like to grab windowed app (non full Desktop) using DXGI. All the DXGI sample code speaks about capture the full Desktop. So, is DXGI capable to do it?
而要单独使用nvidia-video-codec-sdk , 看nvidia官网说ffmpeg 直接支持硬件编码?
DXGI方式下,添加一个文字水印或图片水印,谢谢
使用第三方的rstp服务器,rtsp推流不成功,服务本身没有问题支持udp推流
比如说正在分享中的屏幕,我需要在左上角或者屏幕任意位置添加文字或几何图形、图片
但是不能在对屏幕出现此类水印。
查看了一些资料 有以下做法:
阅读了源码 发现没有相关功能,有任何建议吗
您好,这个项目很有趣。但在全屏应用下,推流停止,变为窗口模式,又恢复正常。请问需要做哪个修改呢?谢谢
我自己尝试编译ffmpeg然后再编译运行测试报以下错误:
[DEBUG] [c:\users\22222\documents\github\desktopsharing\desktopsharing\h264encoder.cpp:H264Encoder::init:46] H.264 Encoder not found.
codec
返回0
win10上面需要怎么操作呢
谢谢作者的开源代码, 我尝试用该库作为发送端, 接收端用ffmpeg 播放, 延时比较高, 如果要降低延时, 请问该从哪方面入手?
用rtp over udp 理论上有没有可能改善? 非常感谢
正在学习推流的代码,Demo对我的帮助很大。但在学习的过程中,
1)发现不能与EasyDar对接,即Web后台看流列表中,看不到。是不是easyDar 我没配置好。
2)还有就是在本地转发的,然后用VLC来看的时候,会有花屏的问题。
PC:W10 LTSC,CPU-I5-2.2G,内存:12G,VS2015
EasyDar版本:Server: EasyDarwin/7.3 (Build/17.0325; Platform/Win32; Release/EasyDarwin; State/Development; )
Hello.
Is it possible to stream directly to a HTTP server located somewhere via HLS or RTMP proxy, etc. Basically, we want each streamer to broadcast his desktop to his audience via a web browser something like Youtube.
现在屏幕截屏看不到鼠标,怎样才能把鼠标添加上去呢
如果抓屏要兼容win7的话,是不是可以用ffmpeg的抓屏方法gdigrab来代替dxgi,但是用gdigrab取到的数据怎么处理呢?
服务端试过好几个rtmp server,比如srs, 客户端用vlc,或者在android设备上面拉流播放,在桌面浏览网页,或者文字滚动,总有2-3s的延迟,不知道什么原因?
另推流能否设置分辨率,如果4k的显示器,直接推4k比较浪费资源,推流接口能否暴露必要的参数,比如帧率,分辨率等常用的参数设置
你好,我正在学习推流,看了你的代码对我帮助非常大;折腾的时候发现你的demo比OBS、ffmpeg推屏幕内存,cpu占用过高,目前没发现是哪里的问题,望大神不吝赐教,谢谢。
memory 250MB左右
cpu 50%
i7 2.4g/ 8g /64位/windos10 vs2017 /
[email protected]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.