Skip to content

Instantly share code, notes, and snippets.

@deadblue
Last active March 28, 2018 14:01
Show Gist options
  • Save deadblue/97bf30669694b148b88aae9c5c7cefc0 to your computer and use it in GitHub Desktop.
Save deadblue/97bf30669694b148b88aae9c5c7cefc0 to your computer and use it in GitHub Desktop.
Some useful bash script for me
# Script fragment of cross-compiling for Synology NAS
# cross compile toolchain installed at /opt/i686-pc-linux-gnu/
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-ar /usr/local/bin/i686-pc-linux-gnu-ar
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-c++ /usr/local/bin/i686-pc-linux-gnu-c++
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-cpp /usr/local/bin/i686-pc-linux-gnu-cpp
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-g++ /usr/local/bin/i686-pc-linux-gnu-g++
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-gcc /usr/local/bin/i686-pc-linux-gnu-gcc
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-gcc-ar /usr/local/bin/i686-pc-linux-gnu-gcc-ar
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-gcc-nm /usr/local/bin/i686-pc-linux-gnu-gcc-nm
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-gcc-ranlib /usr/local/bin/i686-pc-linux-gnu-gcc-ranlib
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-ld /usr/local/bin/i686-pc-linux-gnu-ld
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-ldd /usr/local/bin/i686-pc-linux-gnu-ldd
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-nm /usr/local/bin/i686-pc-linux-gnu-nm
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-objcopy /usr/local/bin/i686-pc-linux-gnu-objcopy
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-objdump /usr/local/bin/i686-pc-linux-gnu-objdump
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-ranlib /usr/local/bin/i686-pc-linux-gnu-ranlib
ln -s /opt/i686-pc-linux-gnu/bin/i686-pc-linux-gnu-strip /usr/local/bin/i686-pc-linux-gnu-strip
# set common environment
export AR=i686-pc-linux-gnu-ar
export CC=i686-pc-linux-gnu-gcc
export LD=i686-pc-linux-gnu-ld
export RANLIB=i686-pc-linux-gnu-ranlib
export CFLAGS="-I/opt/i686-pc-linux-gnu/i686-pc-linux-gnu/include"
export LDFLAGS="-L/opt/i686-pc-linux-gnu/i686-pc-linux-gnu/lib"
export PKG_CONFIG_PATH="/opt/i686-pc-linux-gnu/i686-pc-linux-gnu/lib/pkgconfig"
# compile zlib
./configure --prefix=/opt/i686-pc-linux-gnu/i686-pc-linux-gnu
make
make install
# compile openssl
./Configure --prefix=/opt/i686-pc-linux-gnu/i686-pc-linux-gnu os/compiler:i686-pc-linux-gnu-gcc
make
make install
# compile aria2
./configure --host=i686-pc-linux-gnu --prefix=/root/synology/usr/local --with-openssl --with-libz --without-appletls --without-wintls --without-gnutls
make
make install
# compile pcre
./configure --host=i686-pc-linux-gnu --prefix=/opt/i686-pc-linux-gnu/i686-pc-linux-gnu
make
make install
# compile shadowsocks-libev
./configure --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --prefix=/root/synology/usr/local --disable-documentation --with-pcre=/opt/i686-pc-linux-gnu/i686-pc-linux-gnu --with-zlib=/opt/i686-pc-linux-gnu/i686-pc-linux-gnu --with-openssl=/opt/i686-pc-linux-gnu/i686-pc-linux-gnu
make
make install
#!/bin/sh
# Script for re-encoding videos in "[RefArain] A.I.C.O Incarnation (01-12) [GB_MKV][720p]"
# 1. Encode audio track from E-AC3 to AAC
# 2. Update mkv metadata
function _logging()
{
timestamp=`date '+%Y-%m-%d %H:%M:%S'`
echo "[$timestamp] $1"
}
function _logging_debug()
{
_logging "\x1B[94m$1\x1B[0m"
}
function _logging_info()
{
_logging "\x1B[92m$1\x1B[0m"
}
function _convert_one()
{
_logging_info "Processing file: $1"
# get episode number
episode=${1:29:2}
temp_file="aico_$episode.mkv"
# encoding audio
_logging_debug "Encoding file ..."
ffmpeg -i $1 -loglevel quiet -c:v copy -c:s copy -c:a libfdk_aac -profile:a aac_he -b:a 128k $temp_file
# edit properties
_logging_debug "Updating metadata ..."
mkvpropedit $temp_file --quiet --edit info --set "title=A.I.C.O Incarnation - $episode" --delete segment-uid --edit track:a1 --set "language=jpn" --edit track:s1 --set "language=chi"
# calculate checksum
_logging_debug "Calculating checksum ..."
checksum=`crc32 $temp_file | awk '{print toupper($0)}'`
# rename output file
output_file="[A.I.C.O_Incarnation][$episode][H264_AAC][720P][$checksum].mkv"
mv $temp_file $output_file
_logging_info "File saved to: $output_file"
}
if [ $# -gt 0 ]; then
for input_file in $*; do
_convert_one "$input_file"
done
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment