우분투)tvheadend 에서 Compile FFmpeg for Ubuntu, Debian, or Mint 동작 트랜스 코딩 확인
컨텐츠 정보
- 8,927 조회
- 0 추천
-
목록
본문
우분투)tvheadend 에서 Compile FFmpeg for Ubuntu, Debian, or Mint 동작 트랜스 코딩 확인
우분투 설치후 ffmpeg의 기본설치후 추가적인 cording을 해야 합니다
libx264 H.264 하나 제대로 트랜스코딩 동작
Compile FFmpeg for Ubuntu, Debian, or Mint
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
상기 링크에 대한 기본 컴파일 설치 명령을 순서대로 설치 합니다
이후 저의 시스템에서 tvheadend 스트림을 설정합니다
사용버전
개인 설정 정의 스트림 설정
기본으로 되는 transcording_av-lib 에서 동작 분석
: 다른것은 ffmpeg 초기 설치 에서는 안되네요
transcode: 0037: 1:H264 1920x1080 ==> MPEG2VIDEO 1280x720 (mpeg2video)
2018-12-26 13:29:03.921 subscription: 00D6: "192.168.0.12 [ shimss | Kodi Media Center ]" unsubscribing from "SPOTV2_128", hostname="192.168.0.12", username="shimss", client="Kodi Media Center"
2018-12-26 13:29:04.021 mpegts: skbtv.m3u - Billiards TV_130 in sk - tuning on IPTV
2018-12-26 13:29:04.023 subscription: 00D8: "192.168.0.12 [ shimss | Kodi Media Center ]" subscribing on channel "Billiards TV_130", weight: 100, adapter: "IPTV", network: "sk", mux: "skbtv.m3u - Billiards TV_130", service: "Billiards TV_130", profile="transcording_av-lib", hostname="192.168.0.12", username="shimss", client="Kodi Media Center"
2018-12-26 13:29:04.164 transcode: 0037: 1:H264 1920x1080 ==> MPEG2VIDEO 1280x720 (mpeg2video)
2018-12-26 13:29:04.164 transcode: 0037: 2:AAC-LATM ==> Passthrough
2018-12-26 13:29:04.202 transcode: 0037: 1:H264 1920x1080 ==> MPEG2VIDEO 1280x720 (mpeg2video)
2018-12-26 13:29:04.202 transcode: 0037: 2:AAC-LATM ==> Passthrough
2018-12-26 13:29:04.642 libav: SPS unavailable in decode_picture_timing
2018-12-26 13:29:04.642 libav: non-existing PPS 0 referenced
2018-12-26 13:29:04.642 libav: decode_slice_header error
2018-12-26 13:29:04.642 libav: no frame!
2018-12-26 13:29:04.642 libav: SPS unavailable in decode_picture_timing
2018-12-26 13:29:04.642 libav: non-existing PPS 0 referenced
2018-12-26 13:29:04.642 libav: decode_slice_header error
========================
Compile FFmpeg for Ubuntu, Debian, or Mint
추가 설치후 가능 코덱분석
libx264
H.264 video encoder. See the H.264 Encoding Guide for more information and usage examples.
Requires ffmpeg to be configured with --enable-gpl --enable-libx264.
If your repository provides libx264-dev version ≥ 118 then you can install that instead of compiling:
sudo apt-get install libx264-dev
Otherwise you can compile:
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="$HOME/bin" --enable-static --enable-pic && \ PATH="$HOME/bin:$PATH" make && \ make install
transcode: 003B: 1:H264 1920x1080 ==> H264 1280x720 (libx264)
libx264 H.264 하나 제대로 트랜스코딩 동작 합니다
2018-12-26 13:35:29.764 mpegts: skbtv.m3u - Billiards TV_130 in sk - tuning on IPTV
2018-12-26 13:35:29.768 subscription: 00E0: "192.168.0.12 [ shimss | Kodi Media Center ]" subscribing on channel "Billiards TV_130", weight: 100, adapter: "IPTV", network: "sk", mux: "skbtv.m3u - Billiards TV_130", service: "Billiards TV_130", profile="transcording_av-lib", hostname="192.168.0.12", username="shimss", client="Kodi Media Center"
2018-12-26 13:35:29.919 transcode: 003B: 1:H264 1920x1080 ==> H264 1280x720 (libx264)
2018-12-26 13:35:29.919 transcode: 003B: 2:AAC-LATM ==> Passthrough
2018-12-26 13:35:29.949 transcode: 003B: 1:H264 1920x1080 ==> H264 1280x720 (libx264)
2018-12-26 13:35:29.949 transcode: 003B: 2:AAC-LATM ==> Passthrough
2018-12-26 13:35:30.145 transcode: 003B: Using preset ultrafast
2018-12-26 13:35:30.173 libav: using SAR=1/1
2018-12-26 13:35:30.192 libav: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
2018-12-26 13:35:30.193 libav: profile Constrained Baseline, level 3.2
2018-12-26 13:35:30.193 libav: 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=150 keyint_min=15 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=abr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=5000 vbv_bufsize=15000 nal_hrd=none filler=0 ip_ratio=1.40 aq=0
2018-12-26 13:35:31.372 TS: sk/skbtv.m3u - Billiards TV_130/Billiards TV_130: H264 @ #1539 Continuity counter error (total 1)
2018-12-26 13:35:31.372 TS: sk/skbtv.m3u - Billiards TV_130/Billiards TV_130: AAC-LATM @ #2539 Continuity counter error (total 1)
2018-12-26 13:35:31.384 libav: Increasing reorder buffer to 1
2018-12-26 13:35:31.459 libav: mmco: unref short failure
2018-12-26 13:35:33.312 libav: mmco: unref short failure
2018-12-26 13:35:33.343 libav: mmco: unref short failure
2018-12-26 13:35:38.589 libav: mmco: unref short failure
2018-12-26 13:35:52.297 TS: sk/skbtv.m3u - Billiards TV_130/Billiards TV_130: H264 @ #1539 Continuity counter error (total 5)
2018-12-26 13:35:52.405 libav: mmco: unref short failure
==========
transcode: 0040: 1:H264 1920x1080 ==> HEVC 1280x720 (libx265)
못볼 정도로 화면 끊김
2018-12-26 13:43:16.883 libav: mmco: unref short failure
2018-12-26 13:43:21.044 subscription: 00EB: "192.168.0.12 [ shimss | Kodi Media Center ]" unsubscribing from "SPOTV+_127", hostname="192.168.0.12", username="shimss", client="Kodi Media Center"
2018-12-26 13:43:21.128 mpegts: skbtv.m3u - Billiards TV_130 in sk - tuning on IPTV
2018-12-26 13:43:21.130 subscription: 00EC: "192.168.0.12 [ shimss | Kodi Media Center ]" subscribing on channel "Billiards TV_130", weight: 100, adapter: "IPTV", network: "sk", mux: "skbtv.m3u - Billiards TV_130", service: "Billiards TV_130", profile="transcording_av-lib", hostname="192.168.0.12", username="shimss", client="Kodi Media Center"
2018-12-26 13:43:21.275 transcode: 0040: 1:H264 1920x1080 ==> HEVC 1280x720 (libx265)
2018-12-26 13:43:21.275 transcode: 0040: 2:AAC-LATM ==> Passthrough
2018-12-26 13:43:21.553 transcode: 0040: Using preset ultrafast
2018-12-26 13:43:25.346 TS: sk/skbtv.m3u - Billiards TV_130/Billiards TV_130: H264 @ #1539 Continuity counter error (total 1)
2018-12-26 13:43:25.346 TS: sk/skbtv.m3u - Billiards TV_130/Billiards TV_130: AAC-LATM @ #2539 Continuity counter error (total 1)
2018-12-26 13:43:25.443 libav: mmco: unref short failure
2018-12-26 13:43:25.468 libav: Increasing reorder buffer to 1
===================== 이하 링크 정보 ===============
Compile FFmpeg for Ubuntu, Debian, or Mint
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
순서대로 설치 합니다.
Get the Dependencies
These are packages required for compiling, but you can remove them when you are done if you prefer:
sudo apt-get update -qq && sudo apt-get -y install \ autoconf \ automake \ build-essential \ cmake \ git-core \ libass-dev \ libfreetype6-dev \ libsdl2-dev \ libtool \ libva-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ pkg-config \ texinfo \ wget \ zlib1g-dev
Note: Server users can omit the ffplay and x11grab dependencies: libsdl2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev.
In your home directory make a new directory to put all of the source code and binaries into:
mkdir -p ~/ffmpeg_sources ~/bin
Compilation & Installation
This guide assumes that you want to install some of the most common third-party libraries. Each section provides you with the commands needed to install that library.
For each section, copy-paste the entire code-block into your shell.
If you do not require certain features, you may skip the relevant section (if it is not required) and then remove the appropriate ./configure option in FFmpeg. For example, if libvpx is not needed, skip that section and then remove --enable-libvpx from the Install FFmpegsection.
Tip: To significantly speed up the compilation process on systems with multiple cores, you can use the -j option with each make command, such as make -j4.
NASM
An assembler used by some libraries.
cd ~/ffmpeg_sources && \ wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.bz2 && \ tar xjvf nasm-2.13.03.tar.bz2 && \ cd nasm-2.13.03 && \ ./autogen.sh && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make && \ make install
Yasm
An assembler used by some libraries.
If your repository provides yasm version ≥ 1.2.0 then you can install that instead of compiling:
sudo apt-get install yasm
Otherwise you can compile:
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 && \ make install
libx264
H.264 video encoder. See the H.264 Encoding Guide for more information and usage examples.
Requires ffmpeg to be configured with --enable-gpl --enable-libx264.
If your repository provides libx264-dev version ≥ 118 then you can install that instead of compiling:
sudo apt-get install libx264-dev
Otherwise you can compile:
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="$HOME/bin" --enable-static --enable-pic && \ PATH="$HOME/bin:$PATH" make && \ make install
libx265
H.265/HEVC video encoder. See the H.265 Encoding Guide for more information and usage examples.
If your repository provides libx265-dev version ≥ 68 then you can install that instead of compiling:
sudo apt-get install libx265-dev libnuma-dev
Otherwise you can compile:
sudo apt-get install mercurial libnuma-dev && \ cd ~/ffmpeg_sources && \ if cd x265 2> /dev/null; then hg pull && hg update; else hg clone https://bitbucket.org/multicoreware/x265; fi && \ cd x265/build/linux && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \ PATH="$HOME/bin:$PATH" make && \ make install
libvpx
VP8/VP9 video encoder/decoder. See the VP9 Video Encoding Guide for more information and usage examples.
Requires ffmpeg to be configured with --enable-libvpx.
If your repository provides libvpx-dev version ≥ 1.4.0 then you can install that instead of compiling:
sudo apt-get install libvpx-dev
Otherwise you can compile:
cd ~/ffmpeg_sources && \ git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \ cd libvpx && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \ PATH="$HOME/bin:$PATH" make && \ make install
libfdk-aac
AAC audio encoder. See the AAC Audio Encoding Guide for more information and usage examples.
Requires ffmpeg to be configured with --enable-libfdk-aac (and --enable-nonfree if you also included --enable-gpl).
If your repository provides libfdk-aac-dev then you can install that instead of compiling:
sudo apt-get install libfdk-aac-dev
Otherwise you can compile:
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 && \ make install
libmp3lame
MP3 audio encoder.
Requires ffmpeg to be configured with --enable-libmp3lame.
If your repository provides libmp3lame-dev version ≥ 3.98.3 then you can install that instead of compiling:
sudo apt-get install libmp3lame-dev
Otherwise you can compile:
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 && \ make install
libopus
Opus audio decoder and encoder.
Requires ffmpeg to be configured with --enable-libopus.
If your repository provides libopus-dev version ≥ 1.1 then you can install that instead of compiling:
sudo apt-get install libopus-dev
Otherwise you can compile:
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 && \ make install
libaom
AV1 video encoder/decoder:
Warning: libaom does not yet appear to have a stable API, so compilation of libavcodec/libaomenc.c may occasionally fail. Just wait a day or two for us to catch up with these annoying changes, re-download ffmpeg-snapshot.tar.bz2, and try again. Or skip libaom altogether.
cd ~/ffmpeg_sources && \ git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \ mkdir aom_build && \ cd aom_build && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \ PATH="$HOME/bin:$PATH" make && \ make install
FFmpeg
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 && \ make install && \ hash -r
Now re-login or run the following command for your current shell session to recognize the new ffmpeg location:
관련자료
-
링크