同步播放 FLV 数据

本文关键字:数据 FLV 播放 同步 | 更新日期: 2023-09-27 17:56:14

我只是在调查 http://www.broccoliproducts.com/softnotebook/rtmpclient/rtmpclient.php RTMP客户端代码。它工作正常,因此它可以获取数据并将 FLV 文件保存在本地。

代码非常简单。所以我的问题是:

1. 是否可以同步播放此流媒体?(由于缓存,有一些延迟)(我尝试通过VLC打开写入文件,但它很忙...

2. 有什么线索如何实现吗?

!!这不是这个项目的任何广告!我只需要在WPF中创建一些RTMP播放器。

同步播放 FLV 数据

如果你有Cygwin,你可以通过管道输出tee

rtmpdump -i "rtmp://server/app playpath=mp4:foo.mp4" | tee a.flv | vlc -

这会将输出保存到文件中,同时通过 VLC 播放流。如果你不想安装Cygwin,我有提供小版本,仅 3.2 MB。此外,您可能只能找到Windows版本的tee

一个通用帖子,直到您提供一些额外的要求。

在Flash中,您将创建一个按钮,然后实现以下ActionScript

on (press) {
    fscommand("Variable1", "Variable2");
}

然后在Visual Studio内部,您需要为Shockwave Flash Object添加COM Object引用。 您需要确保将embed设置为 true。

现在在Visual Studio中,您应该能够转到Properties并找到fscommand这将允许您物理连接Flash Movie中的值。

AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent

这将在Flash中收集您的变量。 例如,您只需使用e.commande.arg让收集的项目来做某事。 如。。。

lbl_Result.Text="The " + e.args.ToString() + " " + e.command.ToString()+ " was clicked.";
现在将Flash

电影的数据从Flash传输到Visual Studio。 这很简单,很直接。

这将允许 C# 应用程序实际继承和利用 Flash 视频。

需要考虑的事项:

  • 确保已将embed设置为 true。 这就是物理上保存 Flash 对象中所有Path References的东西。 否则,它可能会调用无效路径。

其他参考帮助:

  1. 在您的项目内部打开Solution Explorer.
  2. 右键单击 ReferenceAdd Reference .
  3. 转到 COM Object .

这些是可用的对象:

  • Shockwave ActiveX
  • Flash Accessibility
  • Flash Broker
  • Shockwave Flash

上面的解决方案将允许您在其本机环境中实际使用 Flash,您只需简单地将变量数据或控件以这种方式实现到 C# 中即可。 这样,您实际上可以直接使用RTMP到Flash。您的 C# 应用程序将只公开 Flash 对象。

这是一种通用方法,当您提供一些额外信息时,我会更新以尝试更好地帮助您。还有像F-In-The-Box,LibRTMP这样的库,它们也可能有所帮助。

以上是相当通用的,就像我说的;但它会调用你在Flash Video Object中注意到的任何质量;然后你的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;
}

您可以在此处找到该主题:其他嵌入说明和详细信息。

这就是如何将Flash放入C#的方法,还有一些方法可以将C#输出到Actionscript。 但是,如果没有更多关于您要做什么的细节,我真的无法做更多的事情,然后这些通用响应。

请记住,这是基于您尝试在应用程序中存储FLV或将数据从 C# 聚合到 Flash。 我需要更多细节来进一步提供帮助。我不太确定为什么需要 C# 以及您实际尝试做什么。

VLC可以播放几乎任何源,并具有多种语言的绑定。 .net当然在名单上。

一个来源:样品
更多信息:这里

看起来FluorineFX也可以与RTMP服务器通信。不确定播放,但可以从.net访问共享对象及其同类。