我想建立某种流包装器:
我拥有带有网络的旧Dreambox PAL卫星接收器。我想将此流转码为较低结果,然后对其进行重流。
我的目标是拥有一个简单的网站,通过rtmp嵌入此流。
我的crtmpserver应该是正确的软件。现在,我有一个正在运行的站点,可以通过jwplayer/crtmpserver播放本地文件。
我正在为此寻找解决方案:
httpUrl-> ffmpeg-> crtmpserver
那可能吗?我可以将ffmpeg的输出重定向到一个文件管道,而crtmpserver可以捕获它吗?还是使用UDP?
任何提示表示赞赏!!!谢谢!!
最佳答案
这很简单:
您应该会看到以下内容:
| tcp | 0.0.0.0 | 9999 | inboundTcpTs | flvplayback |
基本上,这是mpegts流的tcp接受器
ffmpeg -i -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"
从协议(protocol)ITS(13)
ts_13_257_256
的INTS(6)流注册到应用程序flvplayback
ts_13_257_256是流名称。现在您可以使用jwplayer或类似的播放器并将其指向该流
如果要使用UDP,则需要停止服务器并更改配置文件,这样就不必
protocol="inboundTcpTs"
你应该有
protocol="inboundUdpTs"
您甚至可以复制整个部分并将端口号更改为两者都包含。
另外,您必须更改ffmpeg,这样您可以拥有udp://127.0.0.1:9999而不是tcp://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/
在下面查找Google组
干杯,
安德烈