【问题标题】:Re-Stream a MPEG2 TS PAL Stream with crtmpserver使用 crtmpserver 重新流式传输 MPEG2 TS PAL 流
【发布时间】:2011-11-29 11:51:54
【问题描述】:

我想构建某种流包装器:​​

我拥有一台旧的 Dreambox PAL Sat Reciever with Networking。我想将此流转码为较低的结果并重新流式传输它。

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

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

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

httpUrl -> ffmpeg -> crtmpserver

这可能吗?我可以将 ffmpeg 的输出重定向到一个归档管道,并且 crtmpserver 可以抓住它吗?还是使用 UDP?

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

【问题讨论】:

    标签: linux ffmpeg video-streaming


    【解决方案1】:

    这很简单:

    1. 启动服务器(在控制台模式下进行调试) 您应该会看到如下内容:

      |tcp| 0.0.0.0| 9999|入站TcpTs| flv播放|

    基本上,这是 mpegts 流的 tcp 接受器

    1. 使用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"
    
    1. 回到服务器并观察控制台。您应该会看到如下内容:

      名称为 ts_13_257_256 的流 INTS(6) 从协议 ITS(13) 注册到应用程序 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 组

    干杯, 安德烈

    【讨论】:

    • 感谢您的精彩解释!奇迹般有效..! ;-)
    • 哦,这确实包含了非常值得一读的信息。谢谢人+1!
    猜你喜欢
    • 2013-07-26
    • 2022-08-09
    • 1970-01-01
    • 2017-11-16
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多