Friday, 14 February 2020

Cross-Compiling ffmpeg for arm7l Enigma2 Receiver on Ubuntu


Purpose

Convert transport streams for
Download and Configure the Cross-Compiling Tools


sudo apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-
gnueabi libncurses5-dev

Build the 264 Codec Library (libx264)

There are two 264 libraries - openh264 (Cisco) and libx264 (Videolan).  libx264 provides higher quality outputs, and is the library of choice.

Clone from https://code.videolan.org/videolan/x264.git
export CC=arm-linux-gnueabi-gcc
export CXX=arm-linux-gnueabi-g++
export LD=arm-linux-gnueabi-ld
export AR=arm-linux-gnueabi-ar
export NM=arm-linux-gnueabi-nm
export RANLIB=arm-linux-gnueabi-ranlib
./configure  \
  --prefix=/usr/arm-linux-gnueabi \
  --exec-prefix=/usr/arm-linux-gnueabi \
  --enable-static \
  --host=arm-linux-gnueabi
make
sudo make install




Build the Lame MP3 Library

Fetch from: https://sourceforge.net/projects/lame/files/lame/
export CC=arm-linux-gnueabi-gcc
export CXX=arm-linux-gnueabi-g++
export LD=arm-linux-gnueabi-ld
export AR=arm-linux-gnueabi-ar
export NM=arm-linux-gnueabi-nm
export RANLIB=arm-linux-gnueabi-ranlib
./configure CC=arm-linux-gnueabi-gcc \
  --prefix=/usr/arm-linux-gnueabi \
  --exec-prefix=/usr/arm-linux-gnueabi \
  --enable-static --disable-shared \
  --host=arm-linux-gnueabi
make
sudo make install

And build the ffmpeg / ffprobe binaries

Clone from: https://git.ffmpeg.org/ffmpeg.git
./configure --target-os=linux \
  --arch=arm7l \
  --prefix=/usr/arm-linux-gnueabi \
  --enable-cross-compile \
  --cross-prefix=arm-linux-gnueabi- \
  --logfile=configure.log \
  --extra-ldflags=-static \
  --pkg-config-flags="--static" \
  --enable-nonfree \
  --enable-gpl \
  --enable-libx264 \
  --enable-libmp3lame

make
sudo make install
sudo make install-libs
 

Build LibTesseract
Clone From: https://github.com/tesseract-ocr/tesseract.git

Build CCExtractor

Clone From: https://github.com/CCExtractor/ccextractor.git

cd linux
./autogen.sh



Build the Ogg  Library

Fetch from: Github



git clone https://github.com/xiph/ogg.git
cd ogg
autogen.sh
CC=arm-linux-gnueabi-gcc ./configure \
  --prefix=/usr/arm-linux-gnueabi \
  --exec-prefix=/usr/arm-linux-gnueabi \
  --enable-static --disable-shared \
  --host=arm-linux-gnueabi
make
sudo make install

Build the Vorbis Library

Fetch from Github:

git clone https://github.com/xiph/vorbis.gitcd vorbisautogen.shCC=arm-linux-gnueabi-gcc ./configure \  --prefix=/usr/arm-linux-gnueabi \  --exec-prefix=/usr/arm-linux-gnueabi \  --enable-static --disable-shared \  --host=arm-linux-gnueabi
makesudo make install

Build ZLib

Fetch from: https://www.zlib.net/

CC=arm-linux-gnueabi-gcc ./configure --prefix=/usr/arm-linux-gnueabi --static
make
sudo make install