我想构建某种流包装器:
我拥有一台旧的Dreambox PAL Sat Reciever with Networking。这个流我想转码到一个较低的结果一个restream它。
我的目标是拥有一个简单的网站,通过rtmp嵌入此流。
我认为crtmpserver应该是合适的软件。现在我有一个站点在运行,可以通过jwplayer / crtmpserver播放本地文件。
我正在寻找解决方案:
httpUrl - > ffmpeg - > crtmpserver
这可能吗?我可以将ffmpeg的输出重定向到一个已归档的管道,而crtmpserver可以抓住它吗?或者使用UDP?
任何提示都赞赏!!!谢谢!!
答案 0 :(得分:4)
这很简单:
启动服务器(在控制台模式下进行调试) 你应该看到这样的东西:
| TCP | 0.0.0.0 | 9999 | inboundTcpTs |的FLVPlayback |
基本上,这是mpegts流的tcp接受器
使用ffmpeg创建流:
ffmpeg -i<来源> < source_related_parameters> < audio_codec_parameters> < video_codec_parameters> -f mpegts“tcp://127.0.0.1:9999”
示例:
ffmpeg -i /tmp/aaa.flv -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts "tcp://127.0.0.1:9999"
返回服务器并观看控制台。你应该看到这样的东西:
从协议ITS(13)注册到应用程序ts_13_257_256
的名为flvplayback
的流INTS(6)
ts_13_257_256是流名称。现在你可以使用jwplayer或类似的播放器并将其指向该流
如果要使用UDP,则需要停止服务器并更改配置文件,而不是使用
protocol="inboundTcpTs"
你应该
protocol="inboundUdpTs"
你甚至可以复制整个部分并更改端口号以同时拥有两者。 此外,您必须更改ffmpeg,而不是使用tcp://127.0.0.1:9999,您可以使用udp://127.0.0.1:9999
现在,如果您还想要一个流名称而不是ts_13_257_256(顺便说一下ts_protocolId_AudioPID_VideoPID),您可以以类似的方式使用LiveFLV:
ffmpeg -i /tmp/aaa.flv -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv -metadata streamName=myStreamName "tcp://127.0.0.1:6666"
服务器应显示:
Stream INLFLV(1) with name `myStreamName` registered to application `flvplayback` from protocol ILFL(3)
你去,现在你有一个“计算”的流名称是myStreamName
最后一次观察。请在crtmpserver的邮件列表中询问此类问题。你会听到更好的声音。 你可以在这里找到资源: http://www.rtmpd.com/resources/ 在
下寻找谷歌小组干杯, 安德烈