Как изменить качество воспроизведения видео с помощью AVPlayer?

Как изменить качество видео, как на YouTube?

В настоящее время я играю с исходным качеством и даю такие варианты, как 360p, 480p, 720p для изменения качества.

Как я могу это изменить?


person Kuldeep    schedule 05.04.2017    source источник


Ответы (3)


Вы не можете сделать это просто с AVplayer. вам нужен другой URL для видео разного качества. Когда пользователь выбирает другое качество, вы можете переключиться на это видео с помощью метода replaceCurrentItemWithPlayerItem. для AVPlayer.

AVPlayerItem *playeriem= [AVPlayerItem playerItemWithURL:urlOfSelectedQualityVideo];
[playeriem seekToTime:player.currentTime];
[player replaceCurrentItemWithPlayerItem:playeriem];
person PlusInfosys    schedule 05.04.2017
comment
у меня есть только один URL-адрес видео. - person Kuldeep; 05.04.2017
comment
@Kuldeep В этом случае вы не можете переключаться между качеством. - person PlusInfosys; 05.04.2017

Чтобы делать такие вещи, как конвертирование видео, вы должны использовать библиотеку FFmpeg. Попробуйте поискать библиотеки, использующие ffmpeg, на github.

Как этот: https://github.com/iMoreApps/ffmpeg-avplayer-for-ios-tvos

Вы не можете сделать это с AVPlayer. При простом потоковом воспроизведении вы используете индексные файлы M3U, файлы TS, содержащие видеоданные, и просто переключаете потоки.

Ознакомьтесь с документацией HLS и Примеры.

person Oleh Zayats    schedule 05.04.2017

Вы также можете создать несколько версий m3u8, одну с битрейтом видео более низкого качества, скажем, от 128k до 650k, а другую с битрейтом от 650k + до более высокого, и использовать URL-адрес потока более высокого качества, предложенный в ответе выше.

AVPlayerItem *playeriem= [AVPlayerItem playerItemWithURL:urlOfSelectedQualityVideo];
person Umar Cheema    schedule 07.11.2017