如何使用C#创建视频流#
问题描述:
我一直在研究使用C#开发视频流Web服务的解决方案。我正在使用Windows XP和vlc 1.0.3的最新版本通过LAN网络传输视频。但是,目前,我只能通过自己的电脑传输视频。现在问题是我需要在Web服务中执行此流按钮。有没有人有任何想法如何将其更改为网络方法?我怎样才能将这个网络服务链接到一个HTML网页?如何使用C#创建视频流#
以下代码用于使用Windows应用程序流式传输视频。
private void btnStream_Click(object sender, EventArgs e)
{
// Create process and command to run file
System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo(@"C:\videotest.bat");
psi.RedirectStandardOutput = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
System.Diagnostics.Process listFiles;
listFiles = System.Diagnostics.Process.Start(psi);
System.IO.StreamReader myOutput = listFiles.StandardOutput;
listFiles.WaitForExit(2000);
if (listFiles.HasExited)
{
string output = myOutput.ReadToEnd();
//this.processResults.Text = output;
}
}
----- C:\ videotest.bat ------
cd "C:\PROGRA~1\VideoLAN\VLC"
vlc c:\alvinchipmunks.vob --sout "#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:duplicate{dst=std{access=udp,mux=ts,dst=152.226.238.64:1234},dst=std{access=udp,mux=ts,dst=152.226.238.59:1234},dst=display}"
任何答复将不胜感激。
谢谢! =)
答
VLC是一个桌面应用程序。它不适合在服务器上使用。你真的想要一个流媒体服务器。对于网页,我建议将视频转码为H264(使用ffmpeg),然后将RTMP服务器提供给可以嵌入网页的Adobe Flash播放器。服务器有很多选项,包括商业和免费。
您还可以简单地发布视频并使用http下载或一些假http流的实现。
开源:
FluorineFX http://fluorinefx.com/
的Red5 http://osflash.org/red5
RubyIZUMI http://code.google.com/p/rubyizumi/
Kaltura http://osflash.org/kaltura
haxeVideo http://code.google.com/p/haxevideo
商业:
Adobe Flash媒体服务器 http://www.adobe.com/products/flashmediaserver/