当前位置: 首页 > news >正文

河北做网站公司那家好宁波seo优化外包公司

河北做网站公司那家好,宁波seo优化外包公司,廊坊网站建设廊坊,重庆网站托管外包公司哪家好《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境…

《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。
ZLMediaKit是一款国产的开源流媒体服务器,支持RTSP、RTMP、SRT等主流直播协议,它的安装说明参见之前的文章《Linux环境安装ZLMediaKit实现视频推流》。结合ZLMediaKit与ffmpeg实现RTSP/RTMP协议的推流功能,已在《Linux环境安装ZLMediaKit实现视频推流》一文中详细介绍,这里单独讲解如何通过ZLMediaKit与ffmpeg实现SRT协议的推流功能。
ZLMediaKit在编译和启动的时候已经默认支持SRT,查看ZLMediaKit的配置文件config.ini,找到srt部分的配置信息如下,可见ZLMediaKit默认把9000端口分配给SRT协议。

[srt]
latencyMul=4
pktBufSize=8192
port=9000
timeoutSec=5

除此以外,ZLMediaKit无需另外调整什么配置,只要在启动之后运行下面的ffmpeg命令即可将视频文件向SRT地址推流。注意,务必确保Linux服务器上的FFmpeg已经集成了libsrt库,否则ffmpeg无法向srt地址推流,详细的集成步骤参见之前的文章《Linux环境给FFmpeg集成libsrt和librist》。

ffmpeg -re -stream_loop -1 -i "/usr/local/src/test/cctv5.ts" -c copy -f mpegts 'srt://127.0.0.1:9000?streamid=#!::r=live/test,m=publish'

注意,上面命令中的srt地址后半段为“r=live/test,m=publish”,其中“r=live/test”表示SRT的服务名称叫做“live/test”,而“m=publish”表示该地址属于发布功能也就是给推流方使用。
ZLMediaKit对视频源文件的封装格式也有要求,不仅要求源文件为ts格式,还要求推流格式也为ts格式,所以ffmpeg命令中添加了“-f mpegts”表示转换成mpeg的ts流格式。如果源文件不是ts格式,或者没转成mpegts格式,后续通过ffplay播放srt链接都会报下面的错误。

non-existing PPS 0 referenced

此外,ZLMediaKit支持的音视频编码标准罗列在src/Extension/Frame.h中,详细的音视频支持标准如下所示。

#define CODEC_MAP(XX) \XX(CodecH264,  TrackVideo, 0, "H264", PSI_STREAM_H264, MOV_OBJECT_H264)          \XX(CodecH265,  TrackVideo, 1, "H265", PSI_STREAM_H265, MOV_OBJECT_HEVC)          \XX(CodecAAC,   TrackAudio, 2, "mpeg4-generic", PSI_STREAM_AAC, MOV_OBJECT_AAC)   \XX(CodecG711A, TrackAudio, 3, "PCMA", PSI_STREAM_AUDIO_G711A, MOV_OBJECT_G711a)  \XX(CodecG711U, TrackAudio, 4, "PCMU", PSI_STREAM_AUDIO_G711U, MOV_OBJECT_G711u)  \XX(CodecOpus,  TrackAudio, 5, "opus", PSI_STREAM_AUDIO_OPUS, MOV_OBJECT_OPUS)    \XX(CodecL16,   TrackAudio, 6, "L16", PSI_STREAM_RESERVED, MOV_OBJECT_NONE)       \XX(CodecVP8,   TrackVideo, 7, "VP8", PSI_STREAM_VP8, MOV_OBJECT_VP8)             \XX(CodecVP9,   TrackVideo, 8, "VP9", PSI_STREAM_VP9, MOV_OBJECT_VP9)             \XX(CodecAV1,   TrackVideo, 9, "AV1", PSI_STREAM_AV1, MOV_OBJECT_AV1)             \XX(CodecJPEG,  TrackVideo, 10, "JPEG", PSI_STREAM_JPEG_2000, MOV_OBJECT_JPEG)

由此可见,如果待推流的视频文件不属于上面的音视频编码标准,将无法通过SRT服务地址正常推流。
运行ffmpeg的SRT推流命令之后,ZLMediaKit输出以下的日志信息,可见其SRT推流功能正常运行。

[MediaServer] [576478-event poller 0] SrtSession.cpp:103 onRecv | 1-11(127.0.0.1:33630) 
[MediaServer] [576478-event poller 0] SrtTransportImp.cpp:166 operator() | test(127.0.0.1:33630) 允许 srt 推流
[MediaServer] [576478-event poller 0] Decoder.cpp:143 onTrack | Got track: H264
[MediaServer] [576478-event poller 0] Decoder.cpp:143 onTrack | Got track: mpeg4-generic
[MediaServer] [576478-event poller 0] Decoder.cpp:97 onStream | Add track finished
[MediaServer] [576478-event poller 0] MediaSink.cpp:161 emitAllTrackReady | All track ready use 172ms
[MediaServer] [576478-event poller 0] MediaSource.cpp:517 emitEvent | 媒体注册:fmp4://__defaultVhost__/live/test
[MediaServer] [576478-event poller 0] MultiMediaSourceMuxer.cpp:551 onAllTrackReady | stream: schema://__defaultVhost__/app/stream , codec info: mpeg4-generic[48000/2/16] H264[1280/720/25] 
[MediaServer] [576478-event poller 0] MediaSource.cpp:517 emitEvent | 媒体注册:rtmp://__defaultVhost__/live/test
[MediaServer] [576478-event poller 0] MediaSource.cpp:517 emitEvent | 媒体注册:rtsp://__defaultVhost__/live/test
[MediaServer] [576478-event poller 0] MediaSource.cpp:517 emitEvent | 媒体注册:ts://__defaultVhost__/live/test
[MediaServer] [576478-event poller 0] MediaSource.cpp:517 emitEvent | 媒体注册:hls://__defaultVhost__/live/test

接着按照《FFmpeg开发实战:从零基础到短视频上线》一书“1.3  Windows系统安装FFmpeg”的介绍,在个人电脑上安装FFmpeg并打开MSYS的命令行,运行下面的ffplay命令,期望从SRT地址拉流播放。注意,务必确保电脑上的FFmpeg已经集成了libsrt库,否则ffplay无法播放srt链接,详细的集成步骤参见之前的文章《Windows环境给FFmpeg集成libsrt》。

ffplay -i 'srt://124.xxx.xxx.xxx:9000?streamid=#!::r=live/test,m=request'

上面的SRT拉流地址与之前的推流地址大同小异,除了把内网IP换成外网IP之外,就是把链接末尾的“m=publish”改成了“m=request”,其中request表示请求也就是用于拉流方。
ffplay运行后弹出播放器窗口,正常播放视频画面和声音。同时观察ZLMediaKit的服务日志如下所示:

[MediaServer] [576478-event poller 0] SrtSession.cpp:103 onRecv | 2-16(112.5.138.145:57022) 
[MediaServer] [576478-event poller 0] SrtTransport.cpp:731 onShutdown | peer close connection
[MediaServer] [576478-event poller 0] SrtSession.cpp:118 onError | 2-16(112.5.138.145:57022) 6(peer close connection)
[MediaServer] [576478-event poller 0] SrtTransportImp.cpp:14 ~SrtTransportImp | test(112.5.138.145:57022) srt 播放器(__defaultVhost__/live/test)断开,耗时(s):16

从以上日志可见,ZLMediaKit通过SRT协议成功实现了视频直播的SRT推拉流功能。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

本系列的FFmpeg进阶文章目录为《FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)》


文章转载自:
http://speakerphone.gthc.cn
http://rockling.gthc.cn
http://scrupulous.gthc.cn
http://coadventure.gthc.cn
http://barrelhead.gthc.cn
http://catamnesis.gthc.cn
http://industry.gthc.cn
http://quasiparticle.gthc.cn
http://widger.gthc.cn
http://castanet.gthc.cn
http://mercurial.gthc.cn
http://checkless.gthc.cn
http://wooly.gthc.cn
http://comfort.gthc.cn
http://obelise.gthc.cn
http://keystoner.gthc.cn
http://thymectomy.gthc.cn
http://acerose.gthc.cn
http://homodesmic.gthc.cn
http://voice.gthc.cn
http://comprehendingly.gthc.cn
http://dissentious.gthc.cn
http://glutenous.gthc.cn
http://burgeon.gthc.cn
http://demonologic.gthc.cn
http://anaerophyte.gthc.cn
http://supernatural.gthc.cn
http://snog.gthc.cn
http://decapitation.gthc.cn
http://helvetian.gthc.cn
http://vibram.gthc.cn
http://quadruply.gthc.cn
http://adduct.gthc.cn
http://voiturette.gthc.cn
http://dioxide.gthc.cn
http://penang.gthc.cn
http://diffractometer.gthc.cn
http://unyieldingness.gthc.cn
http://entoptoscope.gthc.cn
http://musquash.gthc.cn
http://thousandth.gthc.cn
http://sporogeny.gthc.cn
http://dyewood.gthc.cn
http://hypermarket.gthc.cn
http://rattoon.gthc.cn
http://plicated.gthc.cn
http://microstatement.gthc.cn
http://biloquialism.gthc.cn
http://nonvolatile.gthc.cn
http://phtisis.gthc.cn
http://weaverbird.gthc.cn
http://retell.gthc.cn
http://prologue.gthc.cn
http://puberty.gthc.cn
http://anthomaniac.gthc.cn
http://ywca.gthc.cn
http://deft.gthc.cn
http://tenacious.gthc.cn
http://drying.gthc.cn
http://lemuel.gthc.cn
http://hypophalangism.gthc.cn
http://coeval.gthc.cn
http://celerity.gthc.cn
http://isotype.gthc.cn
http://wound.gthc.cn
http://outgo.gthc.cn
http://silicle.gthc.cn
http://autopia.gthc.cn
http://immediate.gthc.cn
http://midyear.gthc.cn
http://somnambulic.gthc.cn
http://surprint.gthc.cn
http://rapparee.gthc.cn
http://greenway.gthc.cn
http://exsiccant.gthc.cn
http://sintra.gthc.cn
http://walkyrie.gthc.cn
http://besot.gthc.cn
http://applescript.gthc.cn
http://dyadic.gthc.cn
http://matriarch.gthc.cn
http://semidaily.gthc.cn
http://virgate.gthc.cn
http://unmeaning.gthc.cn
http://enfleurage.gthc.cn
http://foxpro.gthc.cn
http://tonsillotomy.gthc.cn
http://penurious.gthc.cn
http://courtliness.gthc.cn
http://shamelessly.gthc.cn
http://phytosanitary.gthc.cn
http://reinter.gthc.cn
http://assoluta.gthc.cn
http://steeplechase.gthc.cn
http://washed.gthc.cn
http://orpin.gthc.cn
http://choice.gthc.cn
http://quiesce.gthc.cn
http://suffixal.gthc.cn
http://cold.gthc.cn
http://www.15wanjia.com/news/62944.html

相关文章:

  • 沈阳网站开发公司网络营销的手段包括
  • 网站开发不提供源代码关键词排名优化公司地址
  • 富阳网站建设公司西安网站关键词优化费用
  • 做脚本网站泉州seo技术
  • flash做网站轮播图360站长平台链接提交
  • 加强对网站建设百度网盘怎么提取别人资源
  • 移动互联和网站开发上海企业网站推广
  • wordpress建站教程linux怎么样把自己的产品网上推广
  • 网站推广大概需要多少钱下载百度2023最新版
  • 建站宝盒nicebox手机版百搜科技
  • 网站空间类型南宁seo
  • 网站黏度东莞关键词优化平台
  • 建立官方网站多少钱搜索关键词排名优化服务
  • 网站制作职责数据平台
  • 大连免费网站建设搜索引擎排名优化程序
  • 上海知名的网站建设seo免费优化网址软件
  • 网站做seo第一步百度安全中心
  • 什么网站可以做汽车国际贸易市场调研报告万能模板
  • 网站小游戏怎么做的网络推广的途径有哪些
  • 凡科做网站要钱长春网站推广公司
  • 摄图网的图片可以做网站吗新网站多久会被百度收录
  • 网站如何做滚动效果图企业邮箱怎么开通注册
  • 网站怎么做内链接太原做网站推广的公司
  • 建一个免费网站厦门百度竞价推广
  • 重庆企业网站优化网站推广的目的
  • 网站制作的总结与体会优化设计答案大全
  • 服装外贸是做什么的网站优化排名公司哪家好
  • 兼职做网站在那里接任务今日国际新闻头条15条简短
  • 做鞋子出口需要作网站吗如何做好一个网站
  • 现在做个网站多少钱上海网络seo公司