2015-10-23 2 views
0

Почему видео не сохраняется?Сохранить mp4 с opencv

self.writer = cv.CreateVideoWriter("test1.mp4", cv2.cv.CV_FOURCC('M', 'J', 'P', 'G'), fps, frame_size, is_color) 

    self.writer = cv.CreateVideoWriter("tsest3.mp4",cv.CV_FOURCC(*'H264'), fps, (320, 240), is_color) 
    self.writer = cv.CreateVideoWriter("test4.mpg", cv.CV_FOURCC('P', 'I', 'M', '1'), fps, (320, 240), is_color) 

Я также использовал WriteFrame, но файл не создан или размер 0kb.

+0

Вы должны сначала создать пороговое изображение, чтобы ничего, кроме белого, не было затемнено. то вы можете удалить шум (и маленький белый объект) с открытием. попробуйте оптический поток на полученном изображении. – Azad

+0

Я бы предложил более простое вычитание фона для этой задачи вместо оптического потока. См. Например, это превосходное [учебное пособие] (http://www.pyimagesearch.com/2015/05/25/basic-motion-detection-and-tracking-with-python-and-opencv/) –

+0

@Azad Вы имеете в виду это ? https://github.com/dereks/motion_tracking – Decapitary

ответ

2

Согласно OpenCV 2.4.11.0 documentation -

Однако OpenCV в основном библиотека компьютерного зрения, а не видеопоток, кодек и написать один. Поэтому разработчики старались максимально упростить эту часть. Благодаря этому OpenCV для видеоконтейнеров поддерживает только расширение avi, его первую версию. Прямым ограничением этого является то, что вы не можете сохранить видеофайл размером более 2 ГБ.

Workaround-

В качестве альтернативы, создать видео-трек с OpenCV и расширить его со звуковыми дорожками или конвертировать в другие форматы, используя программы манипулирования видео, такие как VirtualDub или AviSynth.

Прочитайте полный раздел, описывающий структуру видеофайлов. Также посмотрите на https://stackoverflow.com/a/29746666/3681882