|
25.10.2015, 15:02 | #1 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Компиляция стороннего пакета для openwrt
Уважаемые коллеги
Есть необходимость скомпилировать данный пакет: https://launchpad.net/ffmpeg/+milestone/0.4.8 Под ramips/mt7620-rt-n14u Chaos Calmer 15.05. Сборку освоил неделю назад, по специальности совсем не программист Буду признателен за полезные советы, ссылки и предложения. Заранее спасибо. |
25.10.2015, 18:14 | #2 |
Senior Member
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0 |
Re: Компиляция стороннего пакета для openwrt
Эээ а зачем тебе такой древний ffmpeg?
Тут же есть свежий https://github.com/openwrt/packages/...timedia/ffmpeg Если надо именно этот то смотришь как сделан makefile и делаешь по аналогии. |
25.10.2015, 19:05 | #3 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
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. |
25.10.2015, 19:33 | #4 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Компиляция стороннего пакета для openwrt
Свои проги для роутера, компиляю по сценарию предложенному здесь.
__________________
istarik.ru |
25.10.2015, 19:38 | #5 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Re: Компиляция стороннего пакета для openwrt
stD
Именно по этому уникальному FAQ-у я Вас и заприметил Впрочем мне близка сама концепция УД Когда закончу "проект" - постараюсь оформить проект у вас с фото, расписав что и как. http://cyber-place.ru/showpost.php?p=28334&postcount=4 Вообщем и в целом получается вполне малобюджетно. Легко трансформируется и настраивается под потребности пользователя. === Конечно для имеющих возможности покупать и устанавливать дорогие системы видеонаблюдения, эта информация не актуальна. Последний раз редактировалось sunny; 28.10.2015 в 21:38. |
27.10.2015, 11:24 | #6 | ||
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Re: Компиляция стороннего пакета для openwrt
Мне удалось скомпилировать и подсунуть (Сенсей ты лучший) самый старый ffmpeg проекта openwrt - используя новый motion - но результат отрицательный.
Можно конечно их все перепробывать, но... === Единственное упоминание о motion с работающем ffmpeg на OpenWRT здесь: https://forum.openwrt.org/viewtopic.php?id=56786 ТС в первом посте дает ссылку: http://sheldor.blogspot.com.br/2013/...53876459402197 Внимательно перечитывая которую, получается что автор, сначала устанавливает ffmpeg: Цитата:
Цитата:
Выходит достаточно скачать: http://www.lavrsen.dk/sources/motion-daily/ Старый motion-20120605-224837.tar.gz Скомпилировать, как отдельный пакет и установить. А лучше бы его интегрировать в прошивку. На данный момент процесс компиляции прошивки у меня запущен, но я не уверен, что делаю правильно. Буду признателен в Вашей помощи по компиляции и интеграции в прошивку данного пакета Последний раз редактировалось sunny; 27.10.2015 в 16:36. |
||
27.10.2015, 15:46 | #7 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
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)) Выполняем: Код:
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 /etc/motion/motion.conf - как у motion из родного репозитария. === Зашить бы его еще в прошивку.... Последний раз редактировалось sunny; 27.10.2015 в 16:35. |
27.10.2015, 16:28 | #8 | |
Senior Member
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 990 |
Re: Компиляция стороннего пакета для openwrt
Цитата:
|
|
27.10.2015, 16:41 | #9 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 |
Re: Компиляция стороннего пакета для openwrt
sakatgg
Есть такой, спасибо , так и сделаю. Я так понимаю сторонние пакеты лучше с транком эксплуатировать, или все равно ? === Пардон мусье Последний раз редактировалось sunny; 27.10.2015 в 16:55. |
27.10.2015, 16:49 | #10 | ||
Senior Member
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 990 |
Re: Компиляция стороннего пакета для openwrt
Цитата:
Цитата:
|
||
Здесь присутствуют: 6 (пользователей: 0 , гостей: 6) | |
|
|