android 的 LibVLC:如何保存正在播放的 http 流?

LibVLC for android: how to save the playing http stream?

查看lib的Java代码,发现没有办法将正在播放的视频保存在某处。然而,VLC 核心具有这样的功能,根据 this doc,您可以复制流并保存它,将其直接重定向到文件。

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

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

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

猜猜,目前没有办法通过 libvlc 来做到这一点。 但是,伙计们有此功能的计划,see their milestones at gitlab

您可以使用 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();