首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    3、搭建rtmp视频推服务器

    /configure make && make install 查看pcre版本 pcre-config --version 3.安装zlib库 wget http://www.zlib.net/zlib /configure --add-module=/usr/local/nginx/nginx-rtmp-module make & make install 6.配置Nginx的rtmp服务站点 vim 打开软件 在 来源 模块,点击+,媒体源,新建一个, 在本地文件添加一个视频文件上去, 勾选:循环、当源变为活跃状态时重新启动播放、在可用时使用硬件解码 在右下角 控件 模块,点击设置,点击推 服务:自定义 服务器:rtmp://服务器地址:1935/tv_file 串流密钥:test(这处随便,也就是保存到服务器端的文件名) 开始推: 然后在服务器段就可以看到 .ts .m3u8文件 cd /usr/local/nginx/html/tv_file ls test-0.ts test-1.ts test-2.ts test.m3u8 8.拉测试 下载安装

    4.9K30编辑于 2022-11-01
  • 来自专栏人人都是架构师

    text_blind_watermark%3A 给文本水印

    项目简介 文本隐水印,用来把一段信息嵌入到一段明文中,使信息隐密不可见,并且旁人无法察觉到嵌入后明文的变化。 把信息不可见地嵌入到文本中 from text_blind_watermark import TextBlindWatermark2 password = '20190808' text = '这句话中有盲水印 watermark = 'github.com/guofei9987' text_blind_wm = TextBlindWatermark2(password=password, chr_type=(3, =watermark) print(text_with_wm) text_blind_wm2 = TextBlindWatermark2(password=password, chr_type=(3, text = "这句话中有盲水印,你能提取出来吗?"

    45010编辑于 2025-01-18
  • 来自专栏FHADMIN

    Java 给图片 文字水印

    com.sun.image.codec.jpeg.JPEGCodec; //import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * 说明:图片水印处理类 (String imagePath){ //文字水印 if(null ! strFW[1].toString(), imagePath, "", 1, Color.RED,Integer.parseInt(strFW[2]), Integer.parseInt(strFW[3] ), Integer.parseInt(strFW[4])); //文字 } } } //图片水印 if(null ! PathUtil.getClasspath() + Const.FILEPATHIMG+strIW[1], imagePath, Integer.parseInt(strIW[2]), Integer.parseInt(strIW[3]

    4.8K30发布于 2021-06-15
  • 来自专栏R0A1NG 技术分享

    python实现图片文字水印

    ImageFont.truetype('1641789485961483.otf', fontsize) # 添加背景 new_img = Image.new('RGBA', (image.size[0] * 3, image.size[1] * 3), (255, 255, 255, 255)) new_img.paste(image, image.size) # 添加水印 font_len Image.new('RGBA', rgba_image.size, (0, 0, 0, 0)) image_draw = ImageDraw.Draw(text_overlay) # 水印数量 text}, font:{font}') image_draw.text((i, j), text, font=font, fill=(0, 0, 0, 50)) # 水印文字角度 text = "我是水印" # 水印文字 fontsize = 32 # 文字大小 img = Image.open(pic) fill_img

    3.2K20编辑于 2022-02-26
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTSP如何添加动态水印后转推RTMP或轻量级RTSP服务

    技术背景我们在对接外部开发者的时候,遇到这样的技术诉求,客户用于地下管道检测场景,需要把摄像头的数据拉取过来,然后叠加上实时位置、施工单位、施工人员等信息,然后对外输出新的RTSP,并本地录制一份带动态水印叠加后的数据 技术实现废话不多说,下图先通过Android平台拉取RTSP,然后把解码后的yuv或rgb数据回上来,以图层的形式投递到推送端,需要加水印的话,添加文字水印或图片水印(系动态水印)图层,底层做动态叠加后二次编码打包 ,通过启动轻量级RTSP服务,发布RTSP,生成二次处理后的RTSP新的拉url,如果需要推送至RTMP,只要调用推送RTMP的接口即可,本地录制,可以设置录制目录等信息,保存二次编码后的MP4文件到本地 ()) {stopPush();btnRTMPPusher.setText("推送RTMP");return;}Log.i(TAG, "onClick start push rtmp..") ;InitAndSetConfig();String rtmp_pusher_url = "rtmp://192.168.0.108:1935/hls/stream1";if (!

    77310编辑于 2023-12-25
  • 来自专栏技术综合

    Electron播放rtmp直播

    方法一 直接转flv吧 方法二 使用flash 示例代码 如果直接前端放rtmp直播, 则需要有flash, 而Chrome已经不再支持flash了, 所以得借助flash插件 1659969197107 path.resolve(`resources/flash/${dllName}`) } app.commandLine.appendSwitch('ppapi-flash-path', libPath) 3. 配置播放器 可以通过navigator.plugins来看flash插件有没有引入成功 image.png 然后引入组件, 配置直播即可 <template> <div class="container false, // aspectRatio: '16:9', language: 'zh-CN', sources: [{ type: '<em>rtmp</em> /mp4', src: '<em>rtmp</em>://127.0.0.1/live/test', }], techOrder: ['flash', 'html5']

    6.3K30编辑于 2022-09-21
  • 来自专栏全栈程序员必看

    导出pdf文件时图片水印

    前言:本文探讨的是利用pageEvent事件在生成PDF文件的过程中把图片水印加好,这样导出的是加好水印的pdf文件。 1:加入依赖 <! artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> 2:准备好水印图片 ,将图片拷贝到项目中 3:代码示例,利用pageEvent事件加水印 定义事件类 package itextpdf; import com.itextpdf.text.Document; import document.getPageSize().getWidth(); try { Image img = Image.getInstance(markImagePath);//生成水印图片 plainWidth, plainHeight);//设置图片大小 img.setAlignment(Image.UNDERLYING); // 在字下面 //设置水印图片的坐标

    1.9K10编辑于 2022-08-26
  • 来自专栏FHADMIN

    nginx 转发 rtmp 直播

    nginx转发rtmp 场景描述:服务器1使用nginx-rtmp-module搭建了基于nginx的rtmp平台,用户推rtmp只能推到服务器2,然后转发到服务器1。 nginx默认只能转发http,转发rtmp需要另外编译转发tcp的模块。要求nginx版本大于1.9。 /configure: error: the HTTP rewrite module requires the PCRE library. (3). 0 libsqlite3-dev sqlite3 autoconf libc6-dev libpcre3-dev libcurl4-nss-dev libxml2-dev libxslt-dev imagemagick libffi-dev 3、配置nginx sudo vim /usr/local/nginx/conf/nginx.conf 项目fhadmin.cn events {

    3.6K20编辑于 2021-12-27
  • 来自专栏全栈程序员必看

    logo 图标(php图片文字水印)

    现在很多人都在使用小红书app,但大家肯定都会有同一个问题,图片怎么保存,重点是怎么保存图片无水印。看到好看的图片想保存下来,可是却不喜欢看到有水印。 下载完图片它会自动保存一个文件夹,我们打开文件夹可以看到里面的图片都没有水印哦。 如果有多个图片批量下载,看第一个步骤,你会发现链接一行一个自动粘贴到工具里面如下图所示:采集完点立即下载 还可以批量下载小红书视频哦,打开文件夹,查看视频,都是高清原视频,且无水印,还在迷茫的你,不妨试试小编这个方法吧

    6.8K30编辑于 2022-08-02
  • 来自专栏C/C++与音视频

    视频RTMP实践

    对应RTMP,业界有很多开源方案。如使用FFMPEG推,librtmp(rtmp-dump),gstream推。由于ffmpeg和gstreamer比较庞大,仅仅用来推,有大炮打蚊子之嫌。 推接口。 下面是一个h264裸文件推送RTMP过程。 运行可执行程序推 . 3.如果是云主机,在云主机内不能推公网IP,而要推内网IP 192.168.1.226,客户端访问需要外网IP。 客户端播放效果如下:。

    9.3K30编辑于 2022-06-14
  • 来自专栏RTSP/RTMP直播相关

    Unity3D平台实现全景实时RTMP|RTSP渲染

    好多开发者的使用场景,需要在Windows特别是Android平台实现Unity3D的全景实时视频渲染,本文以Windows平台为例,简单介绍下具体实现: 如果是RTSP或RTMP数据,实际上难点,主要在于拉取 RTSP或RTMP,解析解码,然后把解码后的YUV数据,回调到Unity层,Unity创建个Sphere,创建个材质球(Material),并把材质球挂在到Sphere即可。 本文以Windows推送端采集全景视频,编码推送到RTMP服务器,播放端拉流回调数据并在Unity渲染为例(左侧是Unity播放端,滑动鼠标,可以实现全景内容切换): unity全景.jpg 废话不多说 ,大概流程如下: 本文以调用我们写的RTSP、RTMP直播播放模块为例,首先是初始化模块,然后设置拉的参数信息: public void Play(int sel) { if (videoctrl 0.0f, 0.0f, 0.0f); } } 以上是Unity3D下实现RTMP或RTSP全景视频播放的大概流程,感兴趣的开发者可自行尝试。

    1.5K50编辑于 2022-04-05
  • 来自专栏RTSP/RTMP直播相关

    Unity3D下Linux平台播放RTSP或RTMP

    背景 尽管Windows平台有诸多优势,Linux平台的发展还是势不可挡,特别实在传统行业,然而Linux生态构建,总是差点意思,特别是有些常用的组件,本文基于已有的Linux平台RTSP、RTMP播放模块 ,构建Unity下的RTSP和RTMP直播播放。 技术实现 实际上,Unity层面这块没什么好介绍的,和Windows、Android、iOS平台一样,调用原生的播放模块,回调解码后的数据,在Unity绘制,主要的技术难点,还在原生的处理,也就是拉、 先上个直观感受图,本视频以Windows平台采集秒表计时器窗体,然后编码打包传输到RTMP服务,Unity3D的Linux平台RTMP播放器拉流播放,整体延迟毫秒级。 Unity下,简单来说就是拉解码回调,上层绘制,其实也没有那么复杂,需要注意的是DllImport的写法、之前C++结构体或枚举的转换、Unity3D对Linux的版本兼容等一些细节,对熟悉C#的开发者来说

    1.4K20编辑于 2022-04-01
  • 来自专栏码客

    Nginx添加rtmp模块搭建rtmp服务器

    前言 搭建基于rtmp协议的推服务器。 download/nginx-1.12.2.tar.gz tar zxvf nginx-1.12.2.tar.gz rm nginx-1.12.2.tar.gz mv nginx-1.12.2 nginx 3、 备份文件 cp -r /etc/nginx /etc/nginx_bak mv /usr/sbin/nginx /usr/sbin/nginx_bak 下载rtmp模块 仓库地址:nginx-rtmp-module cd /usr/lib64/nginx/modules/ git clone https://github.com/arut/nginx-rtmp-module.git 添加依赖 cd /usr/local 推请求路径,文件存放路径 hls_fragment 5s; #每个TS文件包含5秒的视频内容 } } } 启动nginx cd /usr/local/nginx

    8.9K20发布于 2019-10-22
  • 来自专栏hml_知识记录

    RTMP视频测试工具

    要做一个android端的流媒体播放器,获取服务器推的rtmp。 vitamio库https://github.com/yixia/VitamioBundle,demo里面列举了很多情况,我自己新建了一个项目,导入module,选择用videoview控件,播放网络上rtmp 经过前辈指点方向,我网上找了rtmp视频的测试工具,简直了,原因竟然是!。。。后台给我的地址格式不正确。 听说rtmp协议有自己的解码规范,所以地址也是有规范的。 我之所以是没有往地址方面想,是因为我们俩手机安装了easyrtmp和easyplayer进行测试,一个推一个拉,没毛病,我就以为地址是正确的。。操心阿。 /objs/sb_rtmp_load -c 1 -r rtmp://127.0.0.1:1935/live/livestream 上面的地址换成自己要测试的地址就好。

    2.8K20编辑于 2022-03-25
  • 来自专栏用户1692782的专栏

    手撕Rtmp协议细节(3)——Rtmp Body

    上一篇讲了RTMP数据包中关于Header的数据组织格式,不过一个完整的RTMP数据包除了Header之外,紧跟着的是RTMP Body,这一篇就继续来说一下RTMP Body的数据组织结构了。 AMF英文全称Action Message Format,是Adobe定义的一套用来进行数据打包的格式,主要的版本有AFM0和AMF3,不过发展至今,实际场景中AMF0一直用的比较多,AMF3相对少见, 那么AMF和RTMP Body又有什么关系呢,不才,RTMP数据包的序列化就是按照AMF的格式进行的。 这样,我们通过对RTMP Body的分析,也熟悉了AMF0的一些标准,当然还有其他的一些类型,朋友有需要可以自行学习,举一反三了,Adobe关于AMF0和AMF3的官方文档放在下方,各位自取哈。 AMF3:https://www.adobe.com/content/dam/acom/en/devnet/pdf/amf-file-format-spec.pdf AMF0:https://wwwimages2

    3.3K40发布于 2020-05-20
  • 来自专栏RTSP/RTMP直播相关

    Windows平台如何实现RTSP拉添加动态水印|视频处理后转推RTMP或轻量级RTSP服务

    ​技术背景 我们在做Windows平台数据转发的时候,除了常规的RTSP转RTMP推送外,还有个场景就是,好多开发者希望拉取的RTSP,做二次视频分析,或者动态水印等,处理后的数据,再二次编码推送到 技术实现 本文就以Windows平台拉取RTSP,回调yuv数据到上层,处理后的数据,二次投递到RTMP服务和轻量级RTSP服务,然后叠加动态水印,并实现处理后的数据实时录像功能,废话不多说,先上图: 上图拉取了RTSP,然后左侧窗体显示,添加动态水印后,再在右侧预览,并把数据重新投递到推送端,考虑到编码性能,我们可选硬编码。 if (is_h264_encoder) { publisher_wrapper_.SetVideoEncoderProfile(3) (如增加动态水印)或视频分析(视觉算法处理)后,再录像、转推至RTMP或轻量级RTSP服务流程,经过二次处理后的数据,配合我们的SmartPlayer,依然可以整体毫秒级的延迟体验

    87110编辑于 2023-12-27
  • 来自专栏小锋学长生活大爆炸

    如何使用OpenCV RTMP直播推

    服务器地址 rtmp = r'rtmp://txy.live-send.acg.tv/live-txy/' # 读取视频并获取属性 cap = cv2.VideoCapture(0) size = (int RTMP是什么? RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。 该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。 RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。 RTMP与HTTP一样,都属于TCP/IP四层模型的应用层。 树莓派是什么?

    11.6K20发布于 2020-08-13
  • 来自专栏一朵灼灼华的博客

    【直播】nginx搭建rtmp直播环境

    clone https://github.com/arut/nginx-rtmp-module.git 解压nginx,将nginx-rtmp-module放到nginx里面 然后configure ://127.0.0.1:1935/livetv/1234" type="rtmp/flv"> //src里面填的是rtmp的地址rtmp://192.168.0.221/live :1935/livetv/hunantv (实测可用) 3.hls地址 http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8 https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8 http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8 /nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm yum install ffmpeg ffmpeg-devel -y 3.

    5.3K21编辑于 2022-08-05
  • 来自专栏流媒体

    基于FFmpeg进行RTMP(二)

    在前面一节基于FFmpeg进行RTMP(一)我们写了最简单的一版推代码。但细心调试过的兄弟会发现当我们把文件换成mp4后,发现上面的代码在写入文件头时报错。也就是说上一版的代码是有bug的。 3.png 定位之后发现是在这里出错。 //写入头部信息 ret = avformat_write_header(octx, 0); 我们跟踪一下源代码: ? videoindex = -1; //所有代码执行之前要调用av_register_all和avformat_network_init //初始化所有的封装和解封装 flv mp4 mp3 test.mp4放到bin目录下即可 const char *inUrl = "hs.mp4"; //输出的地址 const char *outUrl = "rtmp://192.166.11.13 // ret = AVERROR_UNKNOWN; // } // AVCodecContext *pCodecCtx = avcodec_alloc_context3(

    9.2K50发布于 2018-08-23
  • 来自专栏腾讯云开发者社区头条

    视频协议学习:推都擅长的 RTMP

    3)RTMPT封装在HTTP请求之上,可穿透防火墙; 4)RTMPS类似RTMPT,增加了TLS/SSL的安全功能; 5)RTMFP使用UDP进行传输的RTMP; 虽然rtmp有很多变种,但实际在我们的直播应用中 块由块头和数据组成,块头包含3部分:基本头、消息头和扩展时间戳,以下是各部分的介绍: 块的基本头包含块ID和块类型(下面的fmt字段)。块类型代表了编码过的消息头的格式。 此字段根据块ID的不同,长度可能为1,2或3字节。在实现协议时,此字段应该使用可以容纳ID的最小长度。此协议支持最多65597个,ID从3到65599。0,1,2这三个为保留ID。 当块的基本头长度为2字节时,第3-8比特取值为0。当长度为3字节时,第3-8比特取值为1。块ID为2时保留作为低级协议的控制消息和命令消息。 4.2拉 五、实践观察 5.1rtmp推拉环境搭建 参考视频协议学习--HLS的环境部署 5.2rtmp推拉抓包 5.2.1主要的推包介绍 5.2.2主要的拉包介绍 拉的其他流程与推类似

    11K32发布于 2017-05-03
领券