【问题标题】:LibVLC for android: how to save the playing http stream?LibVLC for android:如何保存正在播放的 http 流?
【发布时间】:2015-04-07 12:29:46
【问题描述】:

调查 lib 的 Java 代码,我发现无法在某处保存正在播放的视频。但是,VLC 内核具有这样的功能,根据this doc,您可以复制流并保存,将其重定向到文件。

我认为我们可以在创建 lib 实例时提供相应的参数,所以我尝试在 libvlcjni.c 中初始化库时添加一个选项,如下所示:

"--sout=duplicate{dst=standard{access=file,mux=ts,dst=/storage/emulated/0/example.mp4}, dst=display}"

但似乎它不起作用。还有其他想法吗?

【问题讨论】:

    标签: android libvlc


    【解决方案1】:

    您可以同时使用 libvlc 将正在播放的视频保存到文件中(至少以下对我有用):

    final ArrayList<String> args = new ArrayList<>();
    args.add("-vvv");
    mLibVLC = new LibVLC(this, args);
    mMediaPlayer = new MediaPlayer(mLibVLC);
    <code associating surface for display...>
    Media media = new Media(mLibVLC, Uri.parse(SAMPLE_URL));
    media.addOption(":sout=#duplicate{dst=file{dst=" + <file name> + "},dst=display}");
    mMediaPlayer.setMedia(media);
    mMediaPlayer.play();
    

    【讨论】:

    • 谢谢!虽然还很远,但我不再参与 VLC 的那个项目=)对此感到满意
    【解决方案2】:

    猜猜,目前没有办法通过libvlc 来实现。 但是,伙计们有这个功能的计划,see their milestones at gitlab

    【讨论】:

    • --Bagzerg 你有没有找到其他方法在播放时将部分流保存在 .mp4 中。还有其他库吗?请给我任何想法。我坚持这一点。非常感谢。
    • 我现在只是不关心那个功能,我只是使用 DowloadManager。你可以使用ExoPlayer并自定义它的缓存,至少有这样的可能性,但可能你必须自己DIY。可以尝试寻找解决方案或在issues 讨论。
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2015-01-14
    • 2016-04-28
    • 1970-01-01
    相关资源
    最近更新 更多