6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

jetson nano 用のffmpeg をビルドしてみた

Posted at

jetson nano のハードウェアエンコーダ、デコーダが利用できるffmpeg はnvidiaから公式サポートはされていませんが、さがしてみるとこのリポジトリが見つかりました。

これをビルドしてみたのでその手順を紹介します。
ビルドはjetson nano上でネイティブビルドしています。

準備

ffmpeg をソースからビルドするので、まず依存するライブラリをインストールします。

sudo apt build-dep ffmpeg

これがエラーになるときは、このページをみてください。
apt build-dep がエラーになるときの対処方法

sudo apt install libv4l-dev

あとはこのページの手順でいけます。
https://github.com/jocover/jetson-ffmpeg

依存ライブラリのビルド

git clone https://github.com/jocover/jetson-ffmpeg.git
cd jetson-ffmpeg
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

ffmpeg のパッチとビルド

git clone git://source.ffmpeg.org/ffmpeg.git -b release/4.2 --depth=1
cd ffmpeg
wget https://github.com/jocover/jetson-ffmpeg/raw/master/ffmpeg_nvmpi.patch
git apply ffmpeg_nvmpi.patch
./configure --enable-nvmpi
make -j4 2>&1 |tee make.log
sudo make install
$ which ffmpeg
/usr/local/bin/ffmpeg
$ ffmpeg -codecs |grep 264
ffmpeg version 3eedf15 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)
  configuration: --enable-nvmpi
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_nvmpi ) (encoders: h264_nvmpi h264_v4l2m2m h264_vaapi )

H.264 のdecoder と encoder に h264_nvmpi が入っているのが確認できました。

トランスコードしてみた

H.264の1080p 30fps の動画ファイルを 720p 30fps にトランスコードしてみました。

ffmpeg -c:v h264_nvmpi -i bbb1080.mp4 -c:a copy -c:v h264_nvmpi -s 1280x720 -b:v 1M -g 60 bbb720.mp4

1.1 倍速でできました。
でも、できたファイルを再生してみると音と映像にズレがある ..? ちょっと音が早いみたい。なんでだろ。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?