LibVLC для Android: как сохранить воспроизводимый http-поток?

Исследуя Java-код библиотеки, я не нашел возможности где-нибудь сохранить проигрываемое видео. Однако ядро ​​VLC имеет такие возможности, согласно этот документ, вы можете дублировать stream и сохраните его, перенаправив прямо в файл.

Я подумал, что мы можем предоставить соответствующие аргументы при создании экземпляра библиотеки, поэтому я попытался добавить параметр при инициализации библиотеки в libvlcjni.c вот так:

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

но, похоже, это не работает. Есть другие идеи?


person Dmitry Gryazin    schedule 07.04.2015    source источник


Ответы (2)


Вы можете одновременно сохранить воспроизводимое видео в файл с помощью 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();
person Andrew Kostiuk    schedule 02.12.2019
comment
Спасибо! Это довольно далеко, и я больше не участвую в этом проекте с VLC =) Доволен этим - person Dmitry Gryazin; 09.12.2019

Угадайте, сейчас нет возможности сделать это с помощью libvlc. Однако у ребят есть планы на эту функцию, их основные этапы можно увидеть на gitlab.

person Dmitry Gryazin    schedule 09.04.2016
comment
--Багзерг, вы нашли какой-нибудь другой способ сохранить часть потока в .mp4 во время воспроизведения ... Любая другая библиотека? .. пожалуйста, дайте мне какое-нибудь представление. я застрял на этом. заранее спасибо. - person Bhavesh Desai; 11.04.2016
comment
Сейчас меня просто не волнует эта функция, я просто использую DowloadManager. Вы можете использовать ExoPlayer и настроить его кеширование, по крайней мере, такая возможность существует, но, вероятно, у вас будет в DIY. Можно попробовать найти решение или обсудить его в проблемах. - person Dmitry Gryazin; 12.04.2016