Chcę skorzystać z odtwarzacza wideo np. używając ExoPlayera w aplikacji na Androida, który będzie obsługiwał przełączanie rozdzielczości, tak jak w YouTube.

Moje API ma pliki wideo dla 480p, 720p, 1080p. Chcę podać te opcje w odtwarzaczu i mogę przełączyć go z samego odtwarzacza i odtworzyć odpowiednie pliki z adresu URL.

Widziałem rozwiązania takie jak selektor ścieżki itp., Ale czy to działa w przypadku plików online? Mam linki takie jak:

www.example.com/videos/480/demo.mp4
www.example.com/videos/720/demo.mp4
www.example.com/videos/1080/demo.mp4

Proszę zasugerować, czy są jakieś inne rozwiązania, takie jak zmiana API lub inne protokoły itp.

0
Abhishek Sengupta 20 listopad 2019, 18:04

2 odpowiedzi

Dlaczego nie konwertujesz pliku mp4 na format strumieniowy hls lub mpd za pomocą ffmpeg, aby móc przesyłać strumieniowo fragment po kawałku, a odtwarzacz wybierze najlepszą rozdzielczość na podstawie jego algorytmu?

1
Emanuele Tido 20 listopad 2019, 20:19
Brzmi jak dobry pomysł, ale czy będę mógł ręcznie ustawić rozdzielczość?
 – 
Abhishek Sengupta
21 listopad 2019, 13:11
Oczywiście, że możesz, sprawdź dokumentację: exoplayer.dev/track-selection.html
 – 
Emanuele Tido
1 grudzień 2019, 22:59

Spójrz na ten projekt, pozwala to użytkownikowi ręcznie wybrać rozdzielczość poprzez wybór ścieżki ze strumienia hls zakodowanego przez ffmpeg.

https://github.com/namespace7/HLS_Player

Aby wygenerować strumień hls z wideo, przejdź przez ten link https://superuser.com/a/1302736/1108219

1
Space 30 listopad 2019, 10:15