我想建立某种流包装器:

我拥有带有网络的旧Dreambox PAL卫星接收器。我想将此流转码为较低结果,然后对其进行重流。

我的目标是拥有一个简单的网站,通过rtmp嵌入此流。

我的crtmpserver应该是正确的软件。现在,我有一个正在运行的站点,可以通过jwplayer/crtmpserver播放本地文件。

我正在为此寻找解决方案:

httpUrl-> ffmpeg-> crtmpserver

那可能吗?我可以将ffmpeg的输出重定向到一个文件管道,而crtmpserver可以捕获它吗?还是使用UDP?

任何提示表示赞赏!!!谢谢!!

最佳答案

这很简单:

  • 启动服务器(以控制台方式进行调试)
    您应该会看到以下内容:

    | tcp | 0.0.0.0 | 9999 | inboundTcpTs | flvplayback |

  • 基本上,这是mpegts流的tcp接受器
  • 使用ffmpeg创建流:

    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组

    干杯,
    安德烈

    10-08 03:51