电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java Red5服務器實現流媒體視頻播放

瀏覽:2日期:2022-08-14 08:35:45
引言

流媒體文件是目前非常流行的網絡媒體格式之一,這種文件允許用戶一邊下載一邊播放,從而大大減少了用戶等待播放的時間。另外通過網絡播放流媒體文件時,文件本身不會在本地磁盤中存儲,這樣就節省了大量的磁盤空間開銷。正是這些優點,使得流媒體文件被廣泛應用于網絡播放。

流媒體服務器是通過建立發布點來發布流媒體內容和管理用戶連接的。流媒體服務器能夠發布從視頻采集卡或攝像機等設備中傳來的實況流,也可以發布事先存儲的流媒體文件,并且發布實況流和流媒體文件的結合體。一個媒體流可以由一個媒體文件構成,也可以由多個媒體文件組合而成,還可以由一個媒體文件目錄組成。

Flash Media Server,簡稱 FMS,是 Flash 大家庭里的一員,被稱為是目前開發 Web 音視頻應用程序(比如,視頻聊天室、視頻會議系統、播客系統、音視頻留言等等)的最方便最快捷的解決方案。也在 web 應用程序開發上有著越來越廣泛的應用。當然 FMS 這種優良功能并不是免費提供給廣大用戶的,幾千美金每個點的價格讓很多開發人員望而卻步。于是,大家開始嘗試尋找一種更合適的解決方案,開源的 Red5 便成為了人們的新寵。

Red5 是一個采用 Java 開發的開源的 Flash 流媒體服務器,功能上與 FMS 類似。它支持:把音頻(MP3)和視頻(FLV)轉換成播放流;錄制客戶端播放流(只支持 FLV);共享對象;現場直播流發布;遠程調用。Red5 使用 RSTP 作為流媒體傳輸協議,包括在線錄制,Flash 流媒體播放,在線聊天,視頻會議等一些基本功能。國內外基于 Red5 的流媒體應用產品也在不斷推廣,例如在線視頻會議 Openmeeting,大型 Flash 網游功夫之王 2。

Red5 概述

Red5 是一個采用 Java 開發開源的 Flash 流媒體服務器。免費開源使軟件更加容易擴展,下載后你可以對源代碼進行修改;更加經濟,比起 FMS 高昂的費用,Red5 能為一般的應用節約大筆費用;同時服務器端的 Java 面向對象語言比起 FMS 服務器端的 ActionScript2 語言更加成熟。鑒于 Red5 的種種優勢,推出不久便被廣大用戶所接受。

Red 5 支持:

把音頻(MP3)和視頻(FLV, F4V, MP4, 3GP)轉換成播放流; 錄制客戶端播放流, 把攝像頭,麥克風等傳入的音頻視頻錄制保存到服務器; 共享對象; 現場直播流發布; 遠程調用; 協議:RTMP, RTMPT, RTMPS, and RTMPE。Red5 服務器搭建

JDK自行安裝 下載Red5

https://github.com/Red5/red5-server/releases

解壓到自己的一個能記住的文件夾中 eg:F:Red5

配置Red5相關參數

修改red5.properties配置文件..confred5.properties

只需要配置HTTP 和RMTP節點的host和port即可 默認也行host配置成0.0.0.0 輸入局域網IP或者127.0.0.1都可以正常訪問

# Socket policypolicy.host=0.0.0.0policy.port=843 # HTTPhttp.host=0.0.0.0http.port=8855https.port=5443http.URIEncoding=UTF-8http.max_keep_alive_requests=-1http.max_threads=20http.acceptor_thread_count=10http.processor_cache=20 # RTMPrtmp.host=0.0.0.0rtmp.port=1935rtmp.io_threads=16rtmp.send_buffer_size=65536rtmp.receive_buffer_size=65536rtmp.ping_interval=1000rtmp.max_inactivity=60000rtmp.max_handshake_time=5000rtmp.tcp_nodelay=truertmp.tcp_keepalive=falsertmp.default_server_bandwidth=10000000rtmp.default_client_bandwidth=10000000rtmp.client_bandwidth_limit_type=2rtmp.bandwidth_detection=falsertmp.encoder_base_tolerance=5000rtmp.encoder_drop_live_future=false# traffic optimization hinting. to disable set traffic class set to -1# low delay + high throughput == 24 (0x18)rtmp.traffic_class=-1# requested maximum length of the queue of incoming connectionsrtmp.backlog=32# the interval (seconds) between each throughput calculationrtmp.thoughput_calc_interval=15# enable use of the default mina acceptorrtmp.default_acceptor=true# socket i/o pool sizes used when default acceptor is disabledrtmp.initial_pool_size=0rtmp.max_pool_size=2rtmp.max_processor_pool_size=16rtmp.executor_keepalive_time=60000mina.logfilter.enable=false# scheduler configs (per application)rtmp.scheduler.pool_size=16rtmp.deadlockguard.sheduler.pool_size=16# message executor configs (per application) - adjust these as needed if you get tasks rejectedrtmp.executor.core_pool_size=4rtmp.executor.max_pool_size=32rtmp.executor.queue_capacity=64# drop audio packets when queue is almost full, to disable this, set to 0rtmp.executor.queue_size_to_drop_audio_packets=60# maximum amount of time allotted to process a single rtmp message / packet in milliseconds, set it as 0 to disable timeoutrtmp.max_handling_time=2000# connection tweaks - dont modify unless you know what you’re doingrtmp.channel.initial.capacity=3rtmp.channel.concurrency.level=1rtmp.stream.initial.capacity=1rtmp.stream.concurrency.level=1rtmp.pending.calls.initial.capacity=3rtmp.pending.calls.concurrency.level=1rtmp.reserved.streams.initial.capacity=1rtmp.reserved.streams.concurrency.level=1 # RTMPSrtmps.host=0.0.0.0rtmps.port=8443rtmps.ping_interval=5000rtmps.max_inactivity=60000rtmps.max_keep_alive_requests=-1rtmps.max_threads=20rtmps.acceptor_thread_count=2rtmps.processor_cache=20# RTMPS Key and Trust store parametersrtmps.keystorepass=passwordrtmps.keystorefile=conf/keystore.jksrtmps.truststorepass=passwordrtmps.truststorefile=conf/truststore.jks # RTMPTrtmpt.host=0.0.0.0rtmpt.port=8088rtmpt.ping_interval=5000rtmpt.max_inactivity=60000rtmpt.max_handshake_time=5000rtmpt.max_keep_alive_requests=-1rtmpt.max_threads=20rtmpt.acceptor_thread_count=2rtmpt.processor_cache=20rtmpt.encoder_base_tolerance=5000rtmpt.encoder_drop_live_future=true# better setting for streaming mediartmpt.target_reponse_size=32768# best setting for small messages or shared objects#rtmpt.target_reponse_size=8192# max incoming messages to process at a time. the most that FP appears to send is 166rtmpt.max_in_msg_process=166# max time in millis that we will wait when offering data to the in or out queuertmpt.max_queue_offer_time=125# max offer attemptsrtmpt.max_queue_offer_attempts=4 # WebSocketws.host=0.0.0.0ws.port=8081 # Debug proxy (needs to be activated in red5-core.xml)proxy.source_host=127.0.0.1proxy.source_port=1936proxy.destination_host=127.0.0.1proxy.destination_port=1935 # JMXjmx.rmi.host=localhostjmx.rmi.port=9999jmx.rmi.sport=9998jmx.rmi.port.remoteobjects=jmx.keystorepass=passwordjmx.mina.monitor.enable=falsejmx.mina.poll.interval=1000# Whether to always create the registry in-process, not attempting to # locate an existing registry at the specified port. Set to 'true' in order# to avoid the overhead of locating an existing registry when you always intend# to create a new registry in any case.jmx.registry.create=true# Whether or not the MBeanServerFactoryBean should attempt to locate a running # MBeanServer before creating onejmx.reuse.existing.server=true# Whether to register the MBeanServer with the MBeanServerFactory, making it # available through MBeanServerFactory.findMBeanServer()jmx.register.factory=true# Whether any threads started for the JMXConnectorServer should be started as daemon threadsjmx.daemon=true# Whether the JMXConnectorServer should be started in a separate threadjmx.threaded=true # Server properties# max events to send in a single updateso.max.events.per.update=64so.scheduler.pool_size=4keyframe.cache.entry.max=500war.deploy.server.check.interval=600000fileconsumer.delayed.write=truefileconsumer.queue.size=120subscriberstream.buffer.check.interval=5000subscriberstream.underrun.trigger=100broadcaststream.auto.record=false啟動Red5

雙擊red.bat即可啟動Red5服務器 瀏覽器訪問查看是否搭建成功 http://localhost:port(localhost、port為配置文件中設置) 正確如下圖所示

Java Red5服務器實現流媒體視頻播放

視頻直播開始準備

下載demo

上圖可以看到install紅色的那行字。點擊進去。選擇OLFA 安裝

Java Red5服務器實現流媒體視頻播放

如果下載不成功請看這里

確定webapps下面沒有oflaDemo文件夾。下載壓縮包解壓放進去即可

下載地址鏈接: https://pan.baidu.com/s/1Qd0UggtEhBv5nbVxQGPSzQ 密碼: 4xqf

設置信息發布直播

進入發布設置界面:http://localhost:port/demos/publisher.html

Java Red5服務器實現流媒體視頻播放

查看Settings區域。選擇Video后在Device中選擇攝像頭,并點擊Start,出現視頻畫面(有可能會提示是否允許。選擇允許即可)

Java Red5服務器實現流媒體視頻播放

Server設置

回到Server畫面,在Location中輸入rtmp://localhost:1935/oflaDemo,地址與red5.properties中的rtmp協議的設置必須相同。點擊Connect

Java Red5服務器實現流媒體視頻播放

右側出現NetConnection.Connect.Success ,說明連接服務器成功。

Java Red5服務器實現流媒體視頻播放

推送視頻流

切換到Video點擊Publish頁面中的Publish按鈕即可對外發布直播

查看視頻流

切換到Server點擊play即可看推送的視頻流

Java Red5服務器實現流媒體視頻播放

用自己的頁面觀看直播

需要jwplayer。為了方便大家已經放在oflaDemo里面。在上面的百度云鏈接下載即可。

修改相關內容 file的值是直播頁面的Name的值。streamer則為Location里面的URL

<html><head><title>Red5 - OFLADemo</title><script type=’text/javascript’ src=’jwplayer.js’></script></head><body><div id='player'><script type=’text/javascript’> jwplayer(’player’).setup({ ’flashplayer’: ’player.swf’, ’file’: ’直播頁面的Name’, ’streamer’: ’rtmp://自己服務的IP:1935/oflaDemo’, ’controlbar’: ’bottom’, ’width’: ’848’, ’height’: ’360’ });</script></div></body></html>使用瀏覽器觀看

輸入地址 http://localhost:port/oflaDemo/jwPalyer.html 即可查看

Java Red5服務器實現流媒體視頻播放

以上就是Java Red5服務器實現流媒體視頻播放的詳細內容,更多關于Java Red5流媒體視頻播放的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 超声波清洗机_细胞破碎仪_实验室超声仪器_恒温水浴-广东洁盟深那仪器 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | T恤衫定做,企业文化衫制作订做,广告T恤POLO衫定制厂家[源头工厂]-【汉诚T恤定制网】 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | 骁龙云呼电销防封号系统-axb电销平台-外呼稳定『免费试用』 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 新材料分散-高速均质搅拌机-超声波分散混合-上海化烁智能设备有限公司 | 云南成考网_云南成人高考报名网| 广东成考网-广东成人高考网 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 臭氧灭菌箱-油桶加热箱-原料桶加热融化烘箱-南京腾阳干燥设备厂 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 派克防爆伺服电机品牌|国产防爆伺服电机|高低温伺服电机|杭州摩森机电科技有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | ptc_浴霸_大巴_干衣机_呼吸机_毛巾架_电动车加热器-上海帕克 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 |