Con il codice Jetson-FFMpeg, è possibile utilizzare FFmpeg su Jetson Nano attraverso le Multimedia API L4T, e sfruttare la codifica in hardware di H.264 e HEVC.
FFMpeg rappresenta un framework software altamente portabile per la gestione di dati multimediali. La libreria consente di codificare , decodificare, trascodificare, miscelare, demiscelare e inviare in stream, filtare ed eseguire praticamente qualsiasi formato binario multimediale. Compresi i formati più oscuri ed antiquati e le ultime novità. A prescindere dalla definizione delle specifiche, open o legacy.
Riguardo alla portabilità, FFmpeg compila, viene eseguito e supera a pieni voti qualsiasi infrastruttura di testing definita per Linux, Mac OS X, Microsoft Windows, tutti i sapori di BSD, Solaris e così via, all’interno di una enorme varietà di ambienti, architetture e configurazioni.
La presenza di un framework portabile ed efficiente consente anche all’utente finale di poter fruire di programmi di elaborazione audio-video mediamente complessi e ricchi di caratteristiche.
Non poteva quindi mancare la possibilità di utilizzare FFmpeg in ambito SBC.
Il progetto odierno, in particolare, è stato presentato da Jiiang Wei e sfrutta le caratteristiche di elaborazione parallela e le librerie CUDA disponibili per il piccolo Jetson Nano per velocizzare l’elaborazione delle informazioni digitali.
Configurazione del sistema
Per prima cosa occorre eseguire il build e l’installazione della libreria:
1 2 3 4 5 6 7 8 |
git clone https://github.com/jocover/jetson-ffmpeg.git cd jetson-ffmpeg mkdir build cd build cmake .. make sudo make install sudo ldconfig |
Bisogna quindi installare una patch per utilizzare la libreria con il nostro Jetson Nano:
1 2 3 4 5 6 |
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 |
Voila! Il nostro piccolo SBC è pronto per eseguire qualsiasi lavoro di manipolazione dati audio video con FFmpeg!
Ad esempio, utilizzare la libreria per la decodifica dei formati:
- MPEG2
- H.264/AVC
- HEVC
- VP8
- VP9
attraverso il comando
1 |
ffmpeg -c:v h264_nvmpi -i input_file -f null - |
oppure la codifica video per i formati
- H.264/AVC
- HEVC
con il comando
1 |
ffmpeg -i input_file -c:v h264_nvmpi <output.mp4> |
Se siete interessati a valutare la performance del Jetson Nano rispetto a quelle di un PC classico, restate collegati: stiamo preparando un mini-benchmark al riguardo!
Link utili: