Я работаю над проектом, который требует декодирования большого количества видео (скажем ~ 50, каждый с разрешением HD) и использует значения raw pixel как массивы numpy в процессе Python. Декодирование должно быть почти в режиме реального времени (скажем, 4-5 кадров в секунду). Каков хороший способ сделать это эффективно? Мы можем также ускорить декодирование графического процессора. Цель состоит в том, чтобы одновременно декодировать несколько видео, чтобы исходные значения пикселей могли быть обработаны процессом Python.Декодирование нескольких видеопотоков в адресном пространстве процесса Python
-1
A
ответ
2
Таким образом, один из подходов заключается в использовании некоторого декодера, который сопряжен с использованием метода python (no decode -> pipe -> python-process).
Есть две общие библиотеки попробовать:
Оба используют FFmpeg внутри для декодирования видео (очень эффективно). Для обоих это легко прочитать поток, а затем поместить пиксели в несколько массив numpy.
Я использовал MoviePy один раз чтобы это похоже видел here.
Конденсированного пример (не пробовал):
from moviepy.editor import VideoFileClip
filepath = "output.avi"
clip = VideoFileClip(filepath)
for f in clip.iter_frames(progress_bar=True):
np_array_frame = f
Смотрите также документацию по iter_frames.
Выдержка из документации:
Iterates over all the frames of the clip.
Returns each frame of the clip as a HxWxN np.array,
where N=1 for mask clips and N=3 for RGB clips.
Смежные вопросы
- 1. Обновление содержимого HTML в адресном пространстве процесса
- 2. Буфер TCP в адресном пространстве памяти процесса?
- 3. Общая память в адресном пространстве процесса?
- 4. Страницы, используемые DLL в адресном пространстве процесса
- 5. В другом адресном пространстве процесса, вызывающем функции в dll, как
- 6. Несколько копий файлов .so и a.out в адресном пространстве процесса
- 7. Почему разрешение стека в адресном пространстве процесса Linux является исполнительным?
- 8. Сколько слов в адресном пространстве?
- 9. Как найти отверстия в адресном пространстве?
- 10. отображение памяти в виртуальном адресном пространстве (VAS)
- 11. Отображение страницы, присвоенной пользовательскому процессу в виртуальном адресном пространстве ядра.
- 12. Можно ли запускать каждый поток в отдельном виртуальном адресном пространстве?
- 13. Могу ли я защищать каждую страницу в адресном пространстве Linux-процесса?
- 14. Тест Litmus для проверки того, находится ли адресный адрес в адресном пространстве процесса?
- 15. python gstreamer воспроизводит несколько видеопотоков
- 16. использование отображенного в памяти файла в виртуальном адресном пространстве
- 17. Сопоставление ZONE_HIGHMEM в адресном пространстве ядра в 32 бит x86
- 18. Таблица символов ядра, отображаемая в виртуальном адресном пространстве - почему?
- 19. Отображаемая память IO - кто сопоставляет адреса в физическом адресном пространстве?
- 20. C++ был разработан для работы в одном адресном пространстве
- 21. Действительно ли com.google.common.collect.Ordering.arbitrary надежный в 64-разрядном адресном пространстве?
- 22. Высокие сопоставления памяти в виртуальном адресном пространстве ядра
- 23. Как обрабатывать фрагментацию os в виртуальном адресном пространстве
- 24. Память процесса, общая память GPU и процесс x86 на адресном пространстве x64 окон
- 25. % 2B декодирование в пространстве вместо плюса
- 26. Как происходит управление памятью для потоков процессов в одном виртуальном адресном пространстве?
- 27. Общие сведения об виртуальном адресе и виртуальном адресном пространстве
- 28. Выполнение процесса в пользовательском пространстве и пространстве ядра
- 29. В какой форме указатель void может быть отправлен по каналу другому процессу в другом адресном пространстве процесса
- 30. HTML-декодирование в Python