RUVIDEO
Поделитесь видео 🙏

Seamless Video Player using Python on a Raspberry Pi

How to play videos with gapless transitions and seamless looping using Python on a Raspberry Pi 4.

A few months ago, a client asked me to build the electronics for an interactive art installation that was looping different videos according to the status of multiple sensors.

What seemed at first like an easy project quickly became a nightmare when the topic of "gapless" playback came into play, which led me to a DEEP DIVE into Raspberry Pi video playback. This video is an overview of the solutions I tried, listing their pros and cons.

GitHub link: https://github.com/iadjedj/lgp_rpi_video

Links and reference :
- VLC is the new default player: https://www.raspberrypi.com/news/raspbian-update-november-2018/
- libVLC: https://www.videolan.org/vlc/libvlc.html
- The set_media() function, or why VLC isn't gapless: https://github.com/videolan/vlc/blob/master/lib/media_player.c#L885
- The issue on VLC's git: https://code.videolan.org/videolan/vlc/-/issues/549
- Adafruit Pi Video Looper: https://github.com/adafruit/pi_video_looper
- omxplayer: https://github.com/popcornmix/omxplayer
- hello_video : https://projects.raspberrypi.org/en/projects/demo-programs/5
- hello_video code : https://github.com/adafruit/pi_hello_video/tree/master/hello_video
- RPi forum "All about accelerated video on the Raspberry Pi": https://forums.raspberrypi.com/viewtopic.php?t=317511
- libavcodec: https://en.wikipedia.org/wiki/Libavcodec
- Tutorial about openCV VideoCapture : https://www.youtube.com/watch?v=AxIc-vGaHQ0
- pydrm: https://github.com/notro/pydrm
- Gapless VLC branch : https://code.videolan.org/tguillem/vlc/-/tree/gapless.2 (Take a look at the other branches but this one seems to be the more recent one)

My two StackOverflow best friends:
- Storing a video in a numpy array: https://stackoverflow.com/a/42166299
- Using the framebuffer with memmap: https://stackoverflow.com/a/58816979

About the modern graphics drivers:
- The DRM/KMS subsystem from a newbie’s point of view: https://bootlin.com/pub/conferences/2014/elce/brezillon-drm-kms/brezillon-drm-kms.pdf
- The Modern Linux Graphics Stack on Embedded Systems: https://www.youtube.com/watch?v=k9mobviOpFQ

Media sources:
- OpenCV AR example: https://www.youtube.com/watch?v=vmF9pStl5OM

Chapters:
00:00 Introduction and project presentation
01:09 libVLC
02:56 What is gapless playback?
04:13 Improving VLC playback
06:29 Adafruit Pi Video Looper
08:35 FFmpeg
10:24 OpenCV
12:22 The Linux framebuffer
14:12 Improving our player
17:00 Other possible improvements
18:08 If you're watching this in the future…
19:05 Conclusion

Oh? You're still reading this?
Then consider leaving a comment about my French accent or about my new animated toasts!

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Seamless Video Player using Python on a Raspberry Pi», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.