Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.10.2015, 15:02   #1
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Компиляция стороннего пакета для openwrt

Уважаемые коллеги
Есть необходимость скомпилировать данный пакет:
https://launchpad.net/ffmpeg/+milestone/0.4.8
Под ramips/mt7620-rt-n14u Chaos Calmer 15.05.
Сборку освоил неделю назад, по специальности совсем не программист
Буду признателен за полезные советы, ссылки и предложения.
Заранее спасибо.
sunny вне форума   Ответить с цитированием
Старый 25.10.2015, 18:14   #2
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Компиляция стороннего пакета для openwrt

Эээ а зачем тебе такой древний ffmpeg?
Тут же есть свежий https://github.com/openwrt/packages/...timedia/ffmpeg
Если надо именно этот то смотришь как сделан makefile и делаешь по аналогии.
khseal вне форума   Ответить с цитированием
Старый 25.10.2015, 19:05   #3
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Компиляция стороннего пакета для openwrt

khseal все просто до безобразия
ffmpeg нужен для использования motion.
Когда они в связке, то работает запись видео.
===
В принципе motion 3.4.0-20141018 должен поддерживать ffmpeg 2.6.2.
При компиляции прошивки нужно менять makefile на:
https://forum.openwrt.org/viewtopic.php?id=56786
Несколько пробелов при копировании текста в makefile, нужно удалить создав их одинарным нажатием клавиши TAB - это все там описано, и все это было проделано, но не работает
===
Являясь пользователем ubuntu c 8.04 помня тогдашние костыли motion+ffmpeg полез сюда:
http://www.lavrsen.dk/foswiki/bin/vi...pegFilmsFFmpeg
Там разработчик утверждает, что лучше всего его motion работает с версией ffmpeg-0.4.8
Она доступна:
https://launchpad.net/ffmpeg/+milestone/0.4.8
Коряво постил здесь:
https://forum.openwrt.org/viewtopic.php?id=60434
В принципе информация конечно есть:
http://wiki.openwrt.org/doc/devel/packages
Но хотелось бы получить на русском "обозначение основных нюансов данной процедуры"

Эх, в спойлер бы, как именно нужно править данный makefile ?
Makefile 0.4.8:
Код:
#
# Main ffmpeg Makefile
# (c) 2000, 2001, 2002 Fabrice Bellard
#
include config.mak

VPATH=$(SRC_PATH)

CFLAGS= $(OPTFLAGS) -Wall -g -I. -I$(SRC_PATH) -I$(SRC_PATH)/libavcodec -I$(SRC_PATH)/libavformat -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
LDFLAGS+= -g 

ifeq ($(TARGET_GPROF),yes)
CFLAGS+=-p
LDFLAGS+=-p
endif

PROG=ffmpeg$(EXESUF)
PROGTEST=output_example$(EXESUF)

ifeq ($(CONFIG_FFSERVER),yes)
PROG+=ffserver$(EXESUF)
endif

ifeq ($(CONFIG_FFPLAY),yes)
PROG+=ffplay$(EXESUF)
endif

ifeq ($(CONFIG_AUDIO_BEOS),yes)
EXTRALIBS+=-lmedia -lbe
endif

ifeq ($(BUILD_SHARED),yes)
DEP_LIBS=libavcodec/$(SLIBPREF)avcodec$(SLIBSUF) libavformat/$(SLIBPREF)avformat$(SLIBSUF)
else
DEP_LIBS=libavcodec/$(LIBPREF)avcodec$(LIBSUF) libavformat/$(LIBPREF)avformat$(LIBSUF)
ifeq ($(CONFIG_MP3LAME),yes)
EXTRALIBS+=-lmp3lame
endif
endif

ifeq ($(CONFIG_VORBIS),yes)
EXTRALIBS+=-logg -lvorbis -lvorbisenc
endif

ifeq ($(CONFIG_FAAD),yes)
ifeq ($(CONFIG_FAADBIN),yes)
# no libs needed
else
EXTRALIBS += -lfaad
endif
endif

ifeq ($(BUILD_VHOOK),yes)
VHOOK=videohook
INSTALLVHOOK=install-vhook
CLEANVHOOK=clean-vhook
endif

ifeq ($(TARGET_OS), SunOS)
TEST=/usr/bin/test
else
TEST=test
endif

OBJS = ffmpeg.o ffserver.o cmdutils.o ffplay.o
SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.s)
FFLIBS = -L./libavformat -lavformat -L./libavcodec -lavcodec

all: lib $(PROG) $(PROGTEST) $(VHOOK)

lib:
	$(MAKE) -C libavcodec all
	$(MAKE) -C libavformat all

ffmpeg_g$(EXESUF): ffmpeg.o cmdutils.o .libs
	$(CC) $(LDFLAGS) -o $@ ffmpeg.o cmdutils.o $(FFLIBS) $(EXTRALIBS)

ffmpeg$(EXESUF): ffmpeg_g$(EXESUF)
	cp -p $< $@
	$(STRIP) $@

ffserver$(EXESUF): ffserver.o .libs
	$(CC) $(LDFLAGS) $(FFSLDFLAGS) -o $@ ffserver.o $(FFLIBS) $(EXTRALIBS) 

ffplay_g$(EXESUF): ffplay.o cmdutils.o .libs
	$(CC) $(LDFLAGS) -o $@ ffplay.o cmdutils.o $(FFLIBS) $(EXTRALIBS) $(SDL_LIBS)

ffplay$(EXESUF): ffplay_g$(EXESUF)
	cp -p $< $@
	$(STRIP) $@

output_example$(EXESUF): output_example.o .libs
	$(CC) $(LDFLAGS) -o $@ output_example.o $(FFLIBS) $(EXTRALIBS)

ffplay.o: ffplay.c
	$(CC) $(CFLAGS) $(SDL_CFLAGS) -c -o $@ $< 

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $< 

videohook: .libs
	$(MAKE) -C vhook all

.PHONY: install

install: all install-man $(INSTALLVHOOK)
	$(MAKE) -C libavcodec install
	$(MAKE) -C libavformat install
	install -d "$(bindir)"
	install -c -s -m 755 $(PROG) "$(bindir)"

# create the window installer
wininstaller: all install
	makensis ffinstall.nsi

# install man from source dir if available
install-man:
ifneq ($(CONFIG_WIN32),yes)
	if [ -f $(SRC_PATH)/doc/ffmpeg.1 ] ; then \
	    install -d $(mandir)/man1 ; \
	    install -m 644 $(SRC_PATH)/doc/ffmpeg.1 $(SRC_PATH)/doc/ffplay.1 \
                           $(SRC_PATH)/doc/ffserver.1 $(mandir)/man1 ; \
	fi
endif

install-vhook: $(prefix)/lib/vhook
	$(MAKE) -C vhook install INSTDIR=$(prefix)/lib/vhook

$(prefix)/lib/vhook:
	install -d $@

installlib:
	$(MAKE) -C libavcodec installlib
	$(MAKE) -C libavformat installlib

dep:	depend

depend: .depend
	make -C libavcodec depend
	make -C libavformat depend
ifeq ($(BUILD_VHOOK),yes)
	make -C vhook depend
endif

.depend: $(SRCS)
	$(CC) -MM $(CFLAGS) $^ 1>.depend

.libs: lib
	@test -f .libs || touch .libs
	@for i in $(DEP_LIBS) ; do if $(TEST) $$i -nt .libs ; then touch .libs; fi ; done

clean: $(CLEANVHOOK)
	$(MAKE) -C libavcodec clean
	$(MAKE) -C libavformat clean
	$(MAKE) -C tests clean
	rm -f *.o *.d *~ .libs .depend gmon.out TAGS ffmpeg_g$(EXESUF) ffplay_g$(EXESUF) $(PROG) $(PROGTEST)

clean-vhook:
	$(MAKE) -C vhook clean

distclean: clean
	$(MAKE) -C libavcodec distclean
	rm -f config.mak config.h

TAGS:
	etags *.[ch] libavformat/*.[ch] libavcodec/*.[ch]

# regression tests

libavtest test mpeg4 mpeg test-server fulltest: ffmpeg$(EXESUF)
	$(MAKE) -C tests $@

# tar release (use 'make -k tar' on a checkouted tree)
FILE=ffmpeg-$(shell grep "\#define FFMPEG_VERSION " libavcodec/avcodec.h | \
                    cut -d "\"" -f 2 )

tar:
	rm -rf /tmp/$(FILE)
	cp -r . /tmp/$(FILE)
	( cd /tmp ; tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS )
	rm -rf /tmp/$(FILE)

.PHONY: lib

ifneq ($(wildcard .depend),)
include .depend
endif

Последний раз редактировалось sunny; 25.10.2015 в 19:18.
sunny вне форума   Ответить с цитированием
Старый 25.10.2015, 19:33   #4
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Компиляция стороннего пакета для openwrt

Свои проги для роутера, компиляю по сценарию предложенному здесь.
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 25.10.2015, 19:38   #5
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Компиляция стороннего пакета для openwrt

stD
Именно по этому уникальному FAQ-у я Вас и заприметил
Впрочем мне близка сама концепция УД

Когда закончу "проект" - постараюсь оформить проект у вас с фото, расписав что и как.
http://cyber-place.ru/showpost.php?p=28334&postcount=4

Вообщем и в целом получается вполне малобюджетно.

Легко трансформируется и настраивается под потребности пользователя.
===
Конечно для имеющих возможности покупать и устанавливать дорогие системы видеонаблюдения, эта информация не актуальна.

Последний раз редактировалось sunny; 28.10.2015 в 21:38.
sunny вне форума   Ответить с цитированием
Старый 27.10.2015, 11:24   #6
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Компиляция стороннего пакета для openwrt

Мне удалось скомпилировать и подсунуть (Сенсей ты лучший) самый старый ffmpeg проекта openwrt - используя новый motion - но результат отрицательный.
Можно конечно их все перепробывать, но...
===
Единственное упоминание о motion с работающем ffmpeg на OpenWRT здесь:
https://forum.openwrt.org/viewtopic.php?id=56786
ТС в первом посте дает ссылку:
http://sheldor.blogspot.com.br/2013/...53876459402197

Внимательно перечитывая которую, получается что автор, сначала устанавливает ffmpeg:

Цитата:
The next stage is installing packages and configuring the Webcam, which is as following.

1. Install the packages ffmpeg, and kmod-video-uvc, the Logitech C170 webcam uses the usb video class (uvc) drivers and ffmpeg is used to encode videos.

Код:
    opkg update
    opkg install ffmpeg kmod-video-uvc
2. Plug the C170 in and check that the drivers work by looking at the dev directory, it should contain video0.
А затем он устанавливает самостоятельно скомпилированный пакет:

Цитата:
3. "Motion" is a software package that will capture videos or images when motion has been detected from a video source (the webcam in our case). The standard motion package that was compiled for OpenWRT does not have ffmpeg support, so I compiled a custom version. This version can be obtained here. To install it on the MR3020 do the following.

Код:
wget http://228899seankelly.googlecode.com/svn/trunk/ar71xx/motion/motion_20120605-224837-2_ar71xx.ipk
opkg install motion_20120605-224837-2_ar71xx.ipk
===

Выходит достаточно скачать:
http://www.lavrsen.dk/sources/motion-daily/

Старый motion-20120605-224837.tar.gz

Скомпилировать, как отдельный пакет и установить.
А лучше бы его интегрировать в прошивку.

На данный момент процесс компиляции прошивки у меня запущен, но я не уверен, что делаю правильно.

Буду признателен в Вашей помощи по компиляции и интеграции в прошивку данного пакета

Последний раз редактировалось sunny; 27.10.2015 в 16:36.
sunny вне форума   Ответить с цитированием
Старый 27.10.2015, 15:46   #7
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Компиляция стороннего пакета для openwrt

Работает
Премного благодарен своему Сенсею , за неделю с нуля, такое освоить.....
Проверял на openwrt-ramips-mt7620-rt-n14u 15.05
Вкратце делал так:
Компилируем прошивку со своими пакетами +ffmpeg.
Затем скачиваем:
http://www.lavrsen.dk/sources/motion-daily/
Последний пакет:
motion-20140827-051001.tar.gz
Размещаем его в ./openwrt/dl
Создаем папку скажем с названием 051001
./openwrt/package/051001
Туда копируем этот Makefile:
Код:
#
# Copyright (C) 2008-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=motion
PKG_VERSION:=20140827-051001
PKG_RELEASE:=2

PKG_MAINTAINER:=Roger D <[email protected]>
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=COPYING

PKG_SOURCE_PROTO:=dir
PKG_SOURCE_DIR:=./openwrt/dl/motion-20140827-051001.tar.gz
PKG_MD5SUM:=145fffcb99aed311a9c1d93b838db66f

PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1

include $(INCLUDE_DIR)/package.mk

define Package/motion/Default
  SECTION:=multimedia
  CATEGORY:=Multimedia
  DEPENDS:=+libjpeg +libpthread
  URL:=http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome
endef

define Package/motion
$(call Package/motion/Default)
  TITLE:=webcam motion sensing and logging
  VARIANT:=normal
endef

define Package/motion-ffmpeg
$(call Package/motion/Default)
  TITLE:=(+ffmpeg)
  DEPENDS+=+libffmpeg-full
  VARIANT:=ffmpeg
endef

define Package/motion/conffiles
  /etc/motion.conf
endef

CONFIGURE_ARGS+= \
	--without-optimizecpu \
	--without-jpeg-mmx \
	--without-sdl \
	--without-mysql \
	--without-pgsql \
	--without-sqlite3

ifeq ($(BUILD_VARIANT),normal)
CONFIGURE_ARGS+=--without-ffmpeg
endif
ifeq ($(BUILD_VARIANT),ffmpeg)
CONFIGURE_ARGS+=--with-ffmpeg=$(STAGING_DIR)/usr
endif

define Package/motion/install
	$(INSTALL_DIR) $(1)/etc
	$(CP) $(PKG_BUILD_DIR)/motion-dist.conf $(1)/etc/motion.conf
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/motion $(1)/usr/bin/
endef

define Package/motion-ffmpeg/install
	$(INSTALL_DIR) $(1)/etc
	$(CP) $(PKG_BUILD_DIR)/motion-dist.conf $(1)/etc/motion.conf
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/motion $(1)/usr/bin/
endef

$(eval $(call BuildPackage,motion))
$(eval $(call BuildPackage,motion-ffmpeg))
После копирования содержимого в файл, пробелы удалить и воссоздать их одинарным нажатием клавиши TAB.

Выполняем:

Код:
make clean
и
make V=s package/51001/compile
Пакет находим здесь:
./openwrt/bin/ramips (У меня)/packages/base/motion-ffmpeg_20140827-051001-2_ramips_24kec.ipk

Ну и подсовываем его:
Код:
opkg install /у кого где и как/motion-ffmpeg_20140827-051001-2_ramips_24kec.ipk
Файл motion.conf будет здесь: /etc/motion.conf , а не
/etc/motion/motion.conf - как у motion из родного репозитария.

===

Зашить бы его еще в прошивку....

Последний раз редактировалось sunny; 27.10.2015 в 16:35.
sunny вне форума   Ответить с цитированием
Старый 27.10.2015, 16:28   #8
sakatgg
Senior Member
 
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 990
sakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nice
По умолчанию Re: Компиляция стороннего пакета для openwrt

Цитата:
Зашить бы его еще в прошивку....
По make menuconfig в секции Multimedia пункт motion-ffmpeg не появился случаем? По идее должен появиться, выбрать его и скомпилить
sakatgg вне форума   Ответить с цитированием
Старый 27.10.2015, 16:41   #9
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Компиляция стороннего пакета для openwrt

sakatgg
Есть такой, спасибо , так и сделаю.
Я так понимаю сторонние пакеты лучше с транком эксплуатировать, или все равно ?
===
Пардон мусье

Последний раз редактировалось sunny; 27.10.2015 в 16:55.
sunny вне форума   Ответить с цитированием
Старый 27.10.2015, 16:49   #10
sakatgg
Senior Member
 
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 990
sakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nice
По умолчанию Re: Компиляция стороннего пакета для openwrt

Цитата:
Я так понимаю его лучше сторонние пакеты с транком эксплуатировать
Не понял фразы
Цитата:
Туда копируем этот Makefile:
Этот файл, так понял ты редактировал сам, а изначальный где брал? По ссылке вроде другой, в нем PKG_SOURCE_URL:=https://github.com/Mr-Dave/motion.git
sakatgg вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 6 (пользователей: 0 , гостей: 6)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:14. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика