【问题标题】:Saving VLC stream to mp4 Configuration将 VLC 流保存到 mp4 配置
【发布时间】:2013-12-12 14:15:40
【问题描述】:

我正在使用 C# 在我的 WPF 应用程序中使用 VLC 组件,并将此选项添加到 VLC:

 Options = @":sout=#duplicate{dst=display,dst=std{access=file,mux=ts,dst=" + outputFileName + "}}";

使用此选项,我可以将流保存到 mpg。

我想将流保存到 mp4,我试过了:

Options = @":sout=#duplicate{dst=display,dst=std{access=file,mux=mp4,dst=" + outputFileName + "}}";

Options = @":sout=#transcode{vcodec=theo,vb=800, scale=1,acodec=flac,ab=128,channels=2,samplerate=44100}:std{access=file,mux=ogg,dst=" + outputFileName + "}}";

但这两个选项 VLC 根本不起作用。

如果我想保存到 mp4,sout 应该使用什么选项

提前谢谢你

【问题讨论】:

    标签: c# video mp4 vlc libvlc


    【解决方案1】:

    我的情况:

    string s = "rtsp://address:554/stream";
    VlcControl vlcControl = null;
    Thread thread = new Thread(() => { vlcControl = new VlcControl(); });
    thread.SetApartmentState(ApartmentState.STA);
    thread.Start();
    thread.Join();
    vlcControl.MediaPlayer.VlcLibDirectoryNeeded += OnVlcControlNeedsLibDirectory;
    vlcControl.MediaPlayer.EndInit(); //Important
    prms = prms.Concat(new String[] { ":sout=#transcode{vcodec=mp4v,acodec=none,vb=128,deinterlace}:std{access=file,mux=mp4,dst=" + pathNameFile + "_" + i++ + ".mp4}"}).ToArray();
    vlcControl.MediaPlayer.Play(new Uri(s), prms);
    

    【讨论】:

    • 能不能也加个解释?
    • 这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
    • @JamieR:这可以回答这个问题,因为他使用了另一个参数字符串。但解释会很有帮助。
    • vlc.dotnet 最新版本,在函数“Play()”中有注释方法“EndInit()”。所以当调用“play()”时什么都没有发生(只有 wpf),因此需要“vlcControl.MediaPlayer.EndInit();”。对不起我的英语..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多