我有一个非常简单的问题,但我想答案可能会有点复杂。
好吧。我们走吧。我有一个名为Xsplit Broadcaster (http://www.xsplit.com/).支持RTMP视频流传输。现在我想做的是:
+--(720p)--> TwitchTV FirstChannel
XSplit --(720p RTMP)-->[MyTranscodingServer]--+
+--(360p)--> TwitchTV SecondChannel有没有简单的方法可以做到这一点?
附加信息:两个通道都使用用户名/密码或streamkey在其RTMP端点上接受标准RTMP流。服务器操作系统为GNU/Linux
发布于 2012-08-30 15:26:46
答案是肯定的,这有点复杂。要做到这一点,最简单的方法是使用Gstreamer www.gstreamer.net来完成上述工作。它将接收rtmp,然后您可以将其转码为其他两种格式。但是,如果您不了解gstreamer,那么您必须学习它。
另一种选择是ffmpeg,您可以在其中读取源文件,复制它(比如复制到命名管道中),然后对两个输出运行两个ffmpeg。
这两种方法都有效。gstreamer将允许你编写自己的应用程序,这将在未来给你更多的控制。ffmpeg同样强大(gstreamer使用ffmpeg进行大量操作),但正如我之前所说的,gst应用程序在未来将提供更多的灵活性(如果您需要的话)。但是,您可以在命令行上运行第一个版本。
gstreamer应该可以这样做:您必须找到所需的确切管道。这只是一个指导方针
gst-launch rtmpsrc <options> ! decodebin2 name=d ! tee name=vt ! queue ! x264enc <options> ! flvmux name=m1 ! rtmpsink d. ! tee name=at ! faac <options> ! m1. vt. ! queue ! x264enc <otheroptions> ! flvmux name=m2 ! rtmpsink at. ! queue ! faac <otheroptions> m2. FFmpeg命令行应该是这样的:
ffmpeg -i rtmp://src -acodec aac <audio options> -vcodec libx264 <video options> -f flv rtmp://output 但我不能100%确定它是否会像that.Perhaps一样直接给rtmp输出,如果不能,你可能不得不使用ffserver。
https://stackoverflow.com/questions/12181626
复制相似问题