diff --git a/INSTALL/jetson-ffmpeg-build.sh b/INSTALL/jetson-ffmpeg-build.sh new file mode 100644 index 00000000..c26b755b --- /dev/null +++ b/INSTALL/jetson-ffmpeg-build.sh @@ -0,0 +1,20 @@ +echo "deb https://repo.download.nvidia.com/jetson/ffmpeg main main" | sudo tee -a /etc/apt/sources.list.d/nvidia-ffmpeg.list +echo "deb-src https://repo.download.nvidia.com/jetson/ffmpeg main main" | sudo tee -a /etc/apt/sources.list.d/nvidia-ffmpeg.list +sudo apt update +sudo apt install -y ffmpeg=7:4.2.2-nvidia.1 +if [ $? -ne 0 ]; then + echo "can't install compiled version , compiling from source instaead" + apt source ffmpeg + cd ffmpeg-4.2.7/ + sudo apt install -y libegl1-mesa-dev + sudo apt install -y pkg-config + ./configure --enable-nvv4l2dec --enable-libv4l2 --enable-shared --extra-libs="-L/usr/lib/aarch64-linux-gnu/tegra -lnvbuf_utils" --extra-cflags="-I /usr/src/jetson_multimedia_api/include/" + make -j 2 + sudo make install + export LD_LIBRARY_PATH=/usr/local/lib/ + sudo ldconfig +elif `ffmpeg -decoders | grep -q 'nvv4l2' > /dev/null 2>&1` ; then + echo "installed ffmpeg with HW Acceleration" +else + echo "Failed to install ffmpeg with HW Acceleration" +fi diff --git a/definitions/base.js b/definitions/base.js index a2245ee0..5a4b2a83 100644 --- a/definitions/base.js +++ b/definitions/base.js @@ -672,6 +672,27 @@ module.exports = function(s,config,lang){ }, ] }, + { + "name": lang.NVIDIA-Jetson, + "optgroup": [ + { + "name": lang.h264_nvv4l2dec, + "value": "h264_nvv4l2dec" + }, + { + "name": lang.hevc_nvv4l2dec, + "value": "hevc_nvv4l2dec" + }, + { + "name": lang.mpeg2_nvv4l2dec, + "value": "mpeg2_nvv4l2dec" + }, + { + "name": lang.mpeg4_nvv4l2dec, + "value": "mpeg4_nvv4l2dec" + }, + ] + }, { "name": lang["Quick Sync Video"], "optgroup": [ @@ -901,6 +922,22 @@ module.exports = function(s,config,lang){ { "name": "H.264 openMAX (Raspberry Pi)", "value": "h264_omx" + }, + { + "name": "H.264 nvv4l2 (NVIDIA Jetson)", + "value": "h264_nvv4l2dec" + }, + { + "name": "H.265 nvv4l2 (NVIDIA Jetson)", + "value": "h265_nvv4l2dec" + }, + { + "name": "MPEG2 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg2_nvv4l2dec" + }, + { + "name": "MPEG4 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg4_nvv4l2dec" } ] }, @@ -1509,6 +1546,27 @@ module.exports = function(s,config,lang){ }, ] }, + { + "name": lang.NVIDIA-Jetson, + "optgroup": [ + { + "name": lang.h264_nvv4l2dec, + "value": "h264_nvv4l2dec" + }, + { + "name": lang.hevc_nvv4l2dec, + "value": "hevc_nvv4l2dec" + }, + { + "name": lang.mpeg2_nvv4l2dec, + "value": "mpeg2_nvv4l2dec" + }, + { + "name": lang.mpeg4_nvv4l2dec, + "value": "mpeg4_nvv4l2dec" + }, + ] + }, { "name": lang["Quick Sync Video"], "optgroup": [ @@ -1679,6 +1737,22 @@ module.exports = function(s,config,lang){ { "name": "H.264 openMAX (Raspberry Pi)", "value": "h264_omx" + }, + { + "name": "H.264 nvv4l2 (NVIDIA Jetson)", + "value": "h264_nvv4l2dec" + }, + { + "name": "H.265 nvv4l2 (NVIDIA Jetson)", + "value": "h265_nvv4l2dec" + }, + { + "name": "MPEG2 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg2_nvv4l2dec" + }, + { + "name": "MPEG4 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg4_nvv4l2dec" } ] }, @@ -2056,6 +2130,22 @@ module.exports = function(s,config,lang){ { "name": "H.264 openMAX (Raspberry Pi)", "value": "h264_omx" + }, + { + "name": "H.264 nvv4l2 (NVIDIA Jetson)", + "value": "h264_nvv4l2dec" + }, + { + "name": "H.265 nvv4l2 (NVIDIA Jetson)", + "value": "h265_nvv4l2dec" + }, + { + "name": "MPEG2 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg2_nvv4l2dec" + }, + { + "name": "MPEG4 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg4_nvv4l2dec" } ] }, @@ -7023,6 +7113,27 @@ module.exports = function(s,config,lang){ }, ] }, + { + "name": lang.NVIDIA-Jetson, + "optgroup": [ + { + "name": lang.h264_nvv4l2dec, + "value": "h264_nvv4l2dec" + }, + { + "name": lang.hevc_nvv4l2dec, + "value": "hevc_nvv4l2dec" + }, + { + "name": lang.mpeg2_nvv4l2dec, + "value": "mpeg2_nvv4l2dec" + }, + { + "name": lang.mpeg4_nvv4l2dec, + "value": "mpeg4_nvv4l2dec" + }, + ] + }, { "name": lang["Quick Sync Video"], "optgroup": [ @@ -7225,6 +7336,22 @@ module.exports = function(s,config,lang){ { "name": "H.264 openMAX (Raspberry Pi)", "value": "h264_omx" + }, + { + "name": "H.264 nvv4l2 (NVIDIA Jetson)", + "value": "h264_nvv4l2dec" + }, + { + "name": "H.265 nvv4l2 (NVIDIA Jetson)", + "value": "h265_nvv4l2dec" + }, + { + "name": "MPEG2 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg2_nvv4l2dec" + }, + { + "name": "MPEG4 nvv4l2 (NVIDIA Jetson)", + "value": "mpeg4_nvv4l2dec" } ] }, diff --git a/languages/en_CA.json b/languages/en_CA.json index d637a950..bc3605d4 100644 --- a/languages/en_CA.json +++ b/languages/en_CA.json @@ -1167,6 +1167,10 @@ "hevc_cuvid": "H.265 CUVID", "mjpeg_cuvid": "MJPEG CUVID", "mpeg4_cuvid": "MPEG4 CUVID", + "h264_nvv4l2dec": "H.264 NVIDIA-Jetson", + "hevc_nvv4l2dec": "H.265 NVIDIA-Jetson", + "mpeg2_nvv4l2dec": "MPEG2 NVIDIA-Jetson", + "mpeg4_nvv4l2dec": "MPEG4 NVIDIA-Jetson", "NVIDIA": "NVIDIA", "VA-API": "VA-API", "Raspberry Pi": "Raspberry Pi", diff --git a/languages/ru.json b/languages/ru.json index 8b171527..6351b8bc 100644 --- a/languages/ru.json +++ b/languages/ru.json @@ -1490,6 +1490,10 @@ "h264_omx": "H.264 OpenMax (Raspberry Pi)", "h264_qsv": "H.264 (Quick Sync Video)", "h264_vaapi": "H.264 VA-API (Intel HW Accel)", + "h264_nvv4l2dec": "H.264 NVIDIA-Jetson", + "hevc_nvv4l2dec": "H.265 NVIDIA-Jetson", + "mpeg2_nvv4l2dec": "MPEG2 NVIDIA-Jetson", + "mpeg4_nvv4l2dec": "MPEG4 NVIDIA-Jetson", "h265BrowserText1": "Если вы пытаетесь воспроизводить файл H.265, вам может потребоваться загрузить его и открыть его в другом приложении, таком как VLC.", "hair drier": "фен", "handbag": "сумочка",