Perfekt ffmpeg för 4k till Emby / Plex

Satt och testa och läste om hur man får Directplay på 4k i emby / plex här kommer lite tips och om hur jag gjort.

bin filen hamnar i /home/USER/bin så du kan även installera via apt install ffmpeg och köra denna om du vill.  skriv whereis ffmpeg så ser du vart alla bin filer är.

Först installera ffmpeg

sudo apt install ffmpeg

eller om du vill ha lite extra options följ denna länk för

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Har gjort ett script som fixar allt det där på en gång.

cd ~
nano ffmpeg-pre

Klistra in:

#! /bin/bash
cd ~/ffmpeg_sources && \
        wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14rc16.tar.bz2 && \
        tar xjvf nasm-2.14.02.tar.bz2 && \
        cd nasm-2.14.02 && \
        ./autogen.sh && \
        PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make -j16 && \
make install \

cd ~/ffmpeg_sources && \
wget -O yasm-1.3.0.tar.gz https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \
tar xzvf yasm-1.3.0.tar.gz && \
cd yasm-1.3.0 && \
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make -j16 && \
make install \

cd ~/ffmpeg_sources && \
git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264 && \
cd x264 && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir$
PATH="$HOME/bin:$PATH" make -j16 && \
make install \

cd ~/ffmpeg_sources && \
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
cd fdk-aac && \
autoreconf -fiv && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make -j16 && \
make install \

cd ~/ffmpeg_sources && \
wget -O lame-3.100.tar.gz https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
tar xzvf lame-3.100.tar.gz && \
cd lame-3.100 && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
PATH="$HOME/bin:$PATH" make -j16 && \
make install \

cd ~/ffmpeg_sources && \
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
cd opus && \
./autogen.sh && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make -16 && \
make install \

cd ~/ffmpeg_sources && \
git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
mkdir -p aom_build && \
cd aom_build && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NA$
PATH="$HOME/bin:$PATH" make -j16 && \
make install \

source ~/.profile \ 

cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs="-lpthread -lm" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libaom \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree && \
PATH="$HOME/bin:$PATH" make -j16 && \
make install && \
hash -r \
exit 0

La till source ~/.profile i configen så nu måste du logga ut för att allt ska funka gör du genom och logga ut. Ex exit / logout / restrart pc

chmod +x ffmpeg-pre

##kör filen med glöm inte ändra make -j16 till hur många cpuer du har för 4 cpu -j4

./ffmpeg-pre 

# Måste updatera din profil kör

source ~/.profile 

exit or logout 

#login och skriv ffmpeg -version bör se ut se ut något likande 

$ ffmpeg -version
ffmpeg version N-93276-g3b23eb2 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 5.5.0 (Homebrew gcc 5.5.0_4)
configuration: --prefix=/home/USER/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/USER/ffmpeg_build/include --extra-ldflags=-L/home/USER/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/USER/bin --enable-gpl --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
libavutil      56. 26.100 / 56. 26.100
libavcodec     58. 47.102 / 58. 47.102
libavformat    58. 26.101 / 58. 26.101
libavdevice    58.  6.101 / 58.  6.101
libavfilter     7. 48.100 /  7. 48.100
libswscale      5.  4.100 /  5.  4.100
libswresample   3.  4.100 /  3.  4.100
libpostproc    55.  4.100 / 55.  4.100

Det är rätt svårt och få 4k filmer och köra directplay fick testa och läsa rätt mycket innan jag lyckades få directplay utan transcode.

Det viktigaste är inga texter de ska köra externt via *.srt fil och ljudet ska vara mp3 (libmp3lame) m4a eller om det hete mp4a funkar oxå och nu har jag bara testat Video: h264, yuv420p finns ju även andra men jag kör dessa.

 cd ~
nano ffmpeg-4k

klistra in

#! /bin/bash
ffmpeg -f matroska -i file:"/PATH/TO/Venom.2018.MULTiSUBS.2160p.UHD.BluRay.x265-EGEN.mkv" \
 -threads 0 \
 -movflags faststartl \ #Denna bör aktiveras för att få snabbare uppstart på webbfiler om du kör via webbläsare. 
 -map 0:0  \
 -map 0:1  \
 -map -0:s \
 -c:v:0 libx264 \
 -pix_fmt yuv420p \
 -maxrate 30327922 \
 -bufsize 60655844 -preset slower  \
 -crf 19 \
 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none \
 -force_key_frames "expr:if(isnan(prev_forced_t),eq(t,t),gte(t,prev_forced_t+3))" \
 -copyts \
 -vsync -1 \
 -codec:a:0 libmp3lame \
 -metadata:s:a:0 language=eng \
 -disposition:a:0 default \
 -ac:a:0 2 \
 -ab:a:0 128000 \
 -af:a:0 "volume=2"  /PATH/TO/Venom.2018.2160p.UHD.mkv  \



exit 0
chmod +x ffmpeg-4k

kör filen med 

./ffmpeg-4k

Sen vänta några timmar

Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 3840x1600 [SAR 1:1 DAR 12:5], q=-1--1, 23.98 fps, 1k tbn, 23.98 tbc (default)
    Metadata:
      BPS-eng         : 11153883
      DURATION-eng    : 01:52:08.722000000
      NUMBER_OF_FRAMES-eng: 161328
      NUMBER_OF_BYTES-eng: 9381422300
      _STATISTICS_WRITING_APP-eng: mkvmerge v29.0.0 ('Like It Or Not') 64-bit
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      encoder         : Lavc57.107.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 30327000/0/0 buffer size: 60655000 vbv_delay: -1
    Stream #0:1(eng): Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp (24 bit), 128 kb/s (default)
    Metadata:
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS-eng         : 3212303
      DURATION-eng    : 01:52:08.723000000
      NUMBER_OF_FRAMES-eng: 8074467
      NUMBER_OF_BYTES-eng: 2701837710
      _STATISTICS_WRITING_APP-eng: mkvmerge v29.0.0 ('Like It Or Not') 64-bit
      encoder         : Lavc57.107.100 libmp3lame
frame=  381 fps= 28 q=24.0 size=    1917kB time=00:00:16.44 bitrate= 955.2kbits/s speed=1.23x

Klicka bilden för att se min stackars server jobba. Ej inbyggda texter. Då vill den börja transcodar vi vill ha direktplay det är bästa för cpun. Därför tar vi bort all text. Via denna länk kan du spara undertexterna till fil på ett lite lättare sätt

Install MKVToolNix 

Perl scripts för MKVToolnix finns via denna länk https://github.com/OnAnOpenField/media-manager 

Nu kör jag vanliga 8 Bit ni kan installera 10 Bit yuv420

 ffmpeg -hwaccels

 

Längst nere leta efter nvidias hw acceleration sen får ni söka efter hur ni lägger till det i scripten ovan.  Om ni har nvidia grafikkort. Finns även andra men inget jag testat ännu. Ska lägga in bash i på min windows 10 dator och testa en dag med mitt Nvidia 1070 kort.

Info kommer sen ska spela upp originalet i emby vs converterade så ska vi se CPU info kvalité

Bash scriptet kan ni göra hur avancerat ni vill finns finns hur mycket som helst och lägga till och trixa och ha sig kan. Kan även lägga till (leta upp cpu,time,info to script) i scriptet ovan för cpu info och minnes gpu även om ni kör hw accelerator.

Editerar här film håller på och görs om i slower och crf 19 funka inte med det börja transcoda wtf säg inte att man måste ha viss bitrate måste forska

Avinstallera

cd ~ \
rm -rf bin ffmpeg-source \
rm ffmpeg-pre ffmpeg-4k
Posted in Okategoriserade.Tagged .