mirror of
https://github.com/sirpdboy/sirpdboy-package.git
synced 2025-01-07 03:17:03 +08:00
add ffmpeg-remux
This commit is contained in:
parent
2a74defe74
commit
67f14660ee
223
ffmpeg-remux/Makefile
Normal file
223
ffmpeg-remux/Makefile
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2017-2020 Ian Leonard <antonlacon@gmail.com>
|
||||||
|
# Copyright (C) 2018 Ted Hess <thess@kitschensync.net>
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=ffmpeg-remux
|
||||||
|
PKG_VERSION:=4.3.3
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_SOURCE:=ffmpeg-$(PKG_VERSION).tar.xz
|
||||||
|
PKG_SOURCE_URL:=https://ffmpeg.org/releases/
|
||||||
|
PKG_HASH:=9f0a68fbd74feb4e50dc220bddd59d84626774a53687fb737806ae00e5c6e9e6
|
||||||
|
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
|
||||||
|
Ian Leonard <antonlacon@gmail.com>
|
||||||
|
|
||||||
|
PKG_LICENSE:=LGPL-2.1-or-later GPL-2.0-or-later LGPL-3.0-or-later
|
||||||
|
PKG_LICENSE_FILES:=COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv2.1 COPYING.LGPLv3
|
||||||
|
PKG_CPE_ID:=cpe:/a:ffmpeg:ffmpeg
|
||||||
|
|
||||||
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-x/ffmpeg-$(PKG_VERSION)
|
||||||
|
|
||||||
|
FFMPEG_REMUX_DECODERS:= \
|
||||||
|
mpeg1video \
|
||||||
|
mpeg2video \
|
||||||
|
mpeg4 \
|
||||||
|
mpegvideo \
|
||||||
|
h264 \
|
||||||
|
hevc \
|
||||||
|
vc1 \
|
||||||
|
|
||||||
|
FFMPEG_REMUX_MUXERS:= \
|
||||||
|
matroska \
|
||||||
|
h264 \
|
||||||
|
hevc \
|
||||||
|
mp4 \
|
||||||
|
mpeg1video \
|
||||||
|
mpeg2video \
|
||||||
|
mpegts \
|
||||||
|
ogg \
|
||||||
|
|
||||||
|
FFMPEG_REMUX_DEMUXERS:= \
|
||||||
|
avi \
|
||||||
|
h264 \
|
||||||
|
hevc \
|
||||||
|
matroska \
|
||||||
|
mov \
|
||||||
|
mpegps \
|
||||||
|
mpegts \
|
||||||
|
mpegvideo \
|
||||||
|
ogg \
|
||||||
|
rm \
|
||||||
|
vc1 \
|
||||||
|
wv \
|
||||||
|
|
||||||
|
FFMPEG_REMUX_PARSERS:= \
|
||||||
|
aac \
|
||||||
|
flac \
|
||||||
|
ac3 \
|
||||||
|
h264 \
|
||||||
|
hevc \
|
||||||
|
mpegaudio \
|
||||||
|
mpeg4video \
|
||||||
|
mpegvideo \
|
||||||
|
vc1 \
|
||||||
|
|
||||||
|
FFMPEG_REMUX_PROTOCOLS:= \
|
||||||
|
file pipe
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/ffmpeg-remux
|
||||||
|
TITLE:=FFmpeg remux
|
||||||
|
SECTION:=multimedia
|
||||||
|
CATEGORY:=Multimedia
|
||||||
|
URL:=https://ffmpeg.org/
|
||||||
|
DEPENDS+= +libpthread +zlib +libbz2
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/ffmpeg-remux/description
|
||||||
|
FFmpeg remux only program
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Strip off FPU notation
|
||||||
|
REAL_CPU_TYPE:=$(firstword $(subst +, ,$(CONFIG_CPU_TYPE)))
|
||||||
|
# Fixup cpu types recogized by ffmpeg configure
|
||||||
|
REAL_CPU_TYPE:=$(subst octeonplus,octeon+,$(REAL_CPU_TYPE))
|
||||||
|
|
||||||
|
FFMPEG_CONFIGURE:= \
|
||||||
|
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
|
||||||
|
LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||||
|
./configure \
|
||||||
|
--enable-cross-compile \
|
||||||
|
--cross-prefix="$(TARGET_CROSS)" \
|
||||||
|
--arch="$(ARCH)" \
|
||||||
|
$(if $(REAL_CPU_TYPE),--cpu=$(call qstrip,$(REAL_CPU_TYPE)),) \
|
||||||
|
--target-os=linux \
|
||||||
|
--prefix="/usr" \
|
||||||
|
--pkg-config="pkg-config" \
|
||||||
|
--enable-shared \
|
||||||
|
--enable-pthreads \
|
||||||
|
--enable-zlib \
|
||||||
|
--disable-doc \
|
||||||
|
--disable-debug \
|
||||||
|
\
|
||||||
|
--disable-lzma \
|
||||||
|
--disable-vaapi \
|
||||||
|
--disable-vdpau \
|
||||||
|
--disable-outdevs
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_SOFT_FLOAT),y)
|
||||||
|
FFMPEG_CONFIGURE+= \
|
||||||
|
--disable-altivec \
|
||||||
|
--disable-vsx \
|
||||||
|
--disable-power8 \
|
||||||
|
--disable-armv5te \
|
||||||
|
--disable-armv6 \
|
||||||
|
--disable-armv6t2 \
|
||||||
|
--disable-fast-unaligned \
|
||||||
|
--disable-runtime-cpudetect
|
||||||
|
|
||||||
|
else ifneq ($(findstring arm,$(CONFIG_ARCH))$(findstring aarch64,$(CONFIG_ARCH)),)
|
||||||
|
FFMPEG_CONFIGURE+= \
|
||||||
|
--disable-runtime-cpudetect
|
||||||
|
# XXX: GitHub issue 3320 ppc cpu with fpu but no altivec (WNDR4700)
|
||||||
|
else ifneq ($(findstring powerpc,$(CONFIG_ARCH)),)
|
||||||
|
FFMPEG_CONFIGURE+= \
|
||||||
|
--disable-altivec
|
||||||
|
endif
|
||||||
|
|
||||||
|
# selectively disable optimizations according to arch/cpu type
|
||||||
|
ifneq ($(findstring arm,$(CONFIG_ARCH)),)
|
||||||
|
FFMPEG_CONFIGURE+= --enable-lto
|
||||||
|
|
||||||
|
ifneq ($(findstring vfp,$(CONFIG_CPU_TYPE)),)
|
||||||
|
FFMPEG_CONFIGURE+= --enable-vfp
|
||||||
|
else
|
||||||
|
FFMPEG_CONFIGURE+= --disable-vfp
|
||||||
|
endif
|
||||||
|
ifneq ($(findstring neon,$(CONFIG_CPU_TYPE)),)
|
||||||
|
FFMPEG_CONFIGURE+= \
|
||||||
|
--enable-neon \
|
||||||
|
--enable-vfp
|
||||||
|
else
|
||||||
|
FFMPEG_CONFIGURE+= --disable-neon
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(findstring aarch64,$(CONFIG_ARCH)),)
|
||||||
|
FFMPEG_CONFIGURE+= \
|
||||||
|
--enable-lto \
|
||||||
|
--enable-neon \
|
||||||
|
--enable-vfp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(ARCH),x86_64)
|
||||||
|
FFMPEG_CONFIGURE+= --enable-lto
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_FFMPEG_X86ASM),y)
|
||||||
|
FFMPEG_CONFIGURE += --enable-x86asm
|
||||||
|
else
|
||||||
|
FFMPEG_CONFIGURE += --disable-x86asm
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
FFMPEG_ENABLE= \
|
||||||
|
$(foreach c, $(2), \
|
||||||
|
--enable-$(1)="$(c)" \
|
||||||
|
)
|
||||||
|
|
||||||
|
FFMPEG_CONFIGURE+= \
|
||||||
|
--enable-hardcoded-tables \
|
||||||
|
--disable-static \
|
||||||
|
--libdir="/usr/lib/remux" \
|
||||||
|
--enable-rpath \
|
||||||
|
\
|
||||||
|
--disable-ffplay \
|
||||||
|
--disable-alsa \
|
||||||
|
--disable-iconv \
|
||||||
|
--disable-sndio \
|
||||||
|
--disable-schannel \
|
||||||
|
--disable-sdl2 \
|
||||||
|
--disable-securetransport \
|
||||||
|
--disable-xlib \
|
||||||
|
--disable-v4l2-m2m \
|
||||||
|
--disable-avdevice \
|
||||||
|
--disable-postproc \
|
||||||
|
--disable-swresample \
|
||||||
|
--disable-swscale \
|
||||||
|
--disable-everything \
|
||||||
|
$(call FFMPEG_ENABLE,decoder,$(FFMPEG_REMUX_DECODERS)) \
|
||||||
|
$(call FFMPEG_ENABLE,parser,$(FFMPEG_REMUX_PARSERS)) \
|
||||||
|
$(call FFMPEG_ENABLE,demuxer,$(FFMPEG_REMUX_DEMUXERS)) \
|
||||||
|
$(call FFMPEG_ENABLE,muxer,$(FFMPEG_REMUX_MUXERS)) \
|
||||||
|
$(call FFMPEG_ENABLE,protocol,$(FFMPEG_REMUX_PROTOCOLS))
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_TARGET_x86),)
|
||||||
|
TARGET_CFLAGS+= -fomit-frame-pointer
|
||||||
|
endif
|
||||||
|
|
||||||
|
define Build/Configure
|
||||||
|
( cd $(PKG_BUILD_DIR); $(FFMPEG_CONFIGURE) )
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||||
|
DESTDIR="$(PKG_INSTALL_DIR)" \
|
||||||
|
all install
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/ffmpeg-remux/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/remux
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/remux/lib{avcodec,avfilter,avformat,avutil}.so.* $(1)/usr/lib/remux/
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ffmpeg $(1)/usr/bin/remux
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,ffmpeg-remux))
|
Loading…
Reference in New Issue
Block a user