Skip to content

Commit

Permalink
update ffmpeg version to 0.10 add get image to camera (#3235)
Browse files Browse the repository at this point in the history
  • Loading branch information
pvizeli authored and balloob committed Sep 7, 2016
1 parent fb719f5 commit 165871d
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 16 deletions.
2 changes: 1 addition & 1 deletion homeassistant/components/binary_sensor/ffmpeg.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from homeassistant.const import (EVENT_HOMEASSISTANT_STOP, CONF_NAME,
ATTR_ENTITY_ID)

REQUIREMENTS = ["ha-ffmpeg==0.9"]
REQUIREMENTS = ["ha-ffmpeg==0.10"]

SERVICE_RESTART = 'ffmpeg_restart'

Expand Down
24 changes: 10 additions & 14 deletions homeassistant/components/camera/ffmpeg.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,14 @@
https://home-assistant.io/components/camera.ffmpeg/
"""
import logging
from contextlib import closing

import voluptuous as vol

from homeassistant.components.camera import (Camera, PLATFORM_SCHEMA)
from homeassistant.components.camera.mjpeg import extract_image_from_mjpeg
import homeassistant.helpers.config_validation as cv
from homeassistant.const import CONF_NAME

REQUIREMENTS = ['ha-ffmpeg==0.9']
REQUIREMENTS = ['ha-ffmpeg==0.10']

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -49,22 +47,20 @@ def __init__(self, config):
self._extra_arguments = config.get(CONF_EXTRA_ARGUMENTS)
self._ffmpeg_bin = config.get(CONF_FFMPEG_BIN)

def _ffmpeg_stream(self):
"""Return a FFmpeg process object."""
from haffmpeg import CameraMjpeg

ffmpeg = CameraMjpeg(self._ffmpeg_bin)
ffmpeg.open_camera(self._input, extra_cmd=self._extra_arguments)
return ffmpeg

def camera_image(self):
"""Return a still image response from the camera."""
with closing(self._ffmpeg_stream()) as stream:
return extract_image_from_mjpeg(stream)
from haffmpeg import ImageSingle, IMAGE_JPEG
ffmpeg = ImageSingle(self._ffmpeg_bin)

return ffmpeg.get_image(self._input, output_format=IMAGE_JPEG,
extra_cmd=self._extra_arguments)

def mjpeg_stream(self, response):
"""Generate an HTTP MJPEG stream from the camera."""
stream = self._ffmpeg_stream()
from haffmpeg import CameraMjpeg

stream = CameraMjpeg(self._ffmpeg_bin)
stream.open_camera(self._input, extra_cmd=self._extra_arguments)
return response(
stream,
mimetype='multipart/x-mixed-replace;boundary=ffserver',
Expand Down
2 changes: 1 addition & 1 deletion requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ gps3==0.33.3

# homeassistant.components.binary_sensor.ffmpeg
# homeassistant.components.camera.ffmpeg
ha-ffmpeg==0.9
ha-ffmpeg==0.10

# homeassistant.components.mqtt.server
hbmqtt==0.7.1
Expand Down

0 comments on commit 165871d

Please sign in to comment.