我只是在研究http://www.broccoliproducts.com/softnotebook/rtmpclient/rtmpclient.php RTMP客户端代码。而且它工作得很好,所以它可以获取数据并在本地保存FLV文件。
code非常简单。所以我的问题是:
1.可以同步播放这种流吗?(好吧,由于缓存而延迟)(我试图通过VLC打开写入文件,但它很忙.)
2.知道如何实现它吗?
!这不是这个项目的任何广告!我只需要在WPF.中创建一些RTMP播放器。
发布于 2013-02-04 22:15:54
一个通用的帖子,直到你提供一些额外的要求。
在Flash内部创建一个按钮,然后实现以下ActionScript。
on (press) {
fscommand("Variable1", "Variable2");
}然后,在Visual中,您需要添加用于COM Object的Shockwave Flash Object引用。您需要确保embed设置为true。
现在,在Visual中,您应该能够转到Properties并找到fscommand,这将允许您物理地连接Flash的值。
AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent
它将在Flash中收集您的变量。例如,您可以简单地使用e.command和e.arg来让收集的项做一些事情。比如..。
lbl_Result.Text="The " + e.args.ToString() + " " + e.command.ToString()+ " was clicked.";然后将Flash电影的数据从Flash传输到Visual。这很简单,很直截了当。
这将允许您的C#应用程序实际继承和利用您的闪存视频。
需要考虑的事项:
embed设置为true。这就是Flash中所有Path References的物理保存。否则,它可能会调用无效路径。其他参考帮助:
Solution Explorer。Reference和Add Reference。COM Object。这些是可用的对象:
Shockwave ActiveXFlash AccessibilityFlash BrokerShockwave Flash以上解决方案将允许您在其本地环境中实际使用Flash,您只需将您希望以这种方式实现到C#中的变量数据或控件传递即可。这样,您实际上可以直接使用RTMP到Flash。您的C#应用程序将只公开Flash。
这是一种通用方法,当您提供一些额外的信息时,我将进行更新,以便更好地帮助您。还有一些库,如,LibRTMP,这些库也可能有所帮助.
正如我所说的,上面的内容是相当通用的;但是它会调用您在Flash视频对象中注意到的任何质量;然后,您的C#可以简单地调整它们如下:
<% MyYoutubeUtils.ShowEmebddedVideo("<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>") %>或者..。
public static string ShowEmbeddedVideo(string youtubeObject)
{
var xdoc = XDocument.Parse(youtubeObject);
var returnObject = string.Format("<object type=\"{0}\" data=\{1}\"><param name=\"movie\" value=\"{1}\" />",
xdoc.Root.Element("embed").Attribute("type").Value,
xdoc.Root.Element("embed").Attribute("src").Value);
return returnObject;
}您可以在这里找到线程:Additional Embed Instructions and Details.
这就是如何将Flash放入C#中,也有一些方法可以将C#输出到Actionscript。但是,如果没有更多的细节来说明你想做什么,我真的不能做更多的事情,只有这些一般性的回应。
请记住,这是假设您试图将FLV存储在您的应用程序中,或者将数据从C#聚合到Flash。我需要更多的细节来进一步协助。我不太清楚为什么需要C#,以及您到底想要做什么。
发布于 2013-02-02 02:10:41
如果您有Cygwin,您可以通过tee输送输出。
rtmpdump -i "rtmp://server/app playpath=mp4:foo.mp4" | tee a.flv | vlc -这将保存输出到一个文件,同时通过VLC播放流。如果您不喜欢安装Cygwin,我有可用的a small version,只有3.2MB。此外,您可能只需找到tee的Windows版本。
https://stackoverflow.com/questions/14561737
复制相似问题