ffmpeg をコンパイルしてみる

 TS の字幕を扱いたくなったので、ffmpeg をコンパイルしてみました。TS の字幕が扱えるようになりました。しかし、今まで主に mp4 にしていましたが、mp4 に変換すると字幕の種類が限られるので mkv に変換することにしました。

libaribb24

パッケージのインストール

$ sudo apt-get -y install \ libaribb24-0 \ libaribb24-dev \ libmysofa-dev \ avisynth

ソースを取得

$ git clone https://github.com/nkoriyama/aribb24

構成&コンパイル&インストール

$ ./configure
$ make
$ sudo make install

ffmpeg

コンパイルに必要なパッケージのインストール

$ sudo apt-get build-dep ffmpeg

ソースを取得する

$ git clone –depth 1 git://source.ffmpeg.org/ffmpeg.git

構成する

$ cd ffmpeg $ ./configure \ –enable-nonfree \ –enable-version3 \ –prefix=/usr/local \ –extra-version=’1~deb10u1+rpt1′ \ –toolchain=hardened \ –incdir=/usr/include/arm-linux-gnueabihf \ –enable-gpl \ –disable-stripping \ –disable-filter=resample \ –enable-gnutls \ –enable-ladspa \ –enable-libaom \ –enable-libass \ –enable-libbluray \ –enable-libbs2b \ –enable-libcaca \ –enable-libcdio \ –enable-libcodec2 \ –enable-libflite \ –enable-libfontconfig \ –enable-libfreetype \ –enable-libfribidi \ –enable-libgme \ –enable-libgsm \ –enable-libjack \ –enable-libmp3lame \ –enable-libopenjpeg \ –enable-libopenmpt \ –enable-libopus \ –enable-libpulse \ –enable-librsvg \ –enable-librubberband \ –enable-libshine \ –enable-libsnappy \ –enable-libsoxr \ –enable-libspeex \ –enable-libssh \ –enable-libtheora \ –enable-libtwolame \ –enable-libvidstab \ –enable-libvorbis \ –enable-libvpx \ –enable-libwebp \ –enable-libx265 \ –enable-libxml2 \ –enable-libxvid \ –enable-libzmq \ –enable-libzvbi \ –enable-lv2 \ –enable-omx \ –enable-openal \ –enable-opengl \ –enable-sdl2 \ –enable-omx-rpi \ –enable-mmal \ –enable-neon \ –enable-libdc1394 \ –enable-libdrm \ –enable-libiec61883 \ –enable-chromaprint \ –enable-frei0r \ –enable-libx264 \ –enable-libaribb24 \ –libdir=/usr/lib/arm-linux-gnueabihf \ –cpu=arm1176jzf-s \ –arch=arm

コンパイル&インストール

$ make -j4
$ sudo make install

TS の字幕を取り出す。

 TS の字幕は、一旦取り出してから、mkv で多重化します。

字幕の取り出し

 取り出す形式は、srt 形式で取り出します。

$ ffmpeg -fflags +discardcorrupt -fix_sub_duration -i <TS ファイル> -c:s srt -y <srt ファイル>

字幕の多重化

 字幕が取り出せたら、mkv 形式で多重化します。

$ ffmpeg -fflags +discardcorrupt -fix_sub_duration -i <TS ファイル> -i <srt ファイル> -map 0:v -map 0:a -map 1 -bsf:a aac_adtstoasc -c:a copy -c:v copy -c:s copy -aspect 16:9 -y <mkv ファイル>

 詳しい使い方は help を見てください。

Raspberry Pi

Posted by sirius