Skip to content

Commit

Permalink
Merge branch 'release/2020.8'
Browse files Browse the repository at this point in the history
  • Loading branch information
voluntas committed Jul 23, 2020
2 parents 6e9255e + 1f97650 commit e705053
Show file tree
Hide file tree
Showing 46 changed files with 1,470 additions and 634 deletions.
6 changes: 4 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ jobs:
- raspberry-pi-os_armv7
- raspberry-pi-os_armv8
- ubuntu-16.04_x86_64_ros
- ubuntu-18.04_armv8_jetson
- ubuntu-18.04_armv8_jetson_nano
- ubuntu-18.04_armv8_jetson_xavier
- ubuntu-18.04_x86_64
- ubuntu-20.04_x86_64
name: Build momo for ${{ matrix.name }}
Expand Down Expand Up @@ -186,7 +187,8 @@ jobs:
- raspberry-pi-os_armv7
- raspberry-pi-os_armv8
- ubuntu-16.04_x86_64_ros
- ubuntu-18.04_armv8_jetson
- ubuntu-18.04_armv8_jetson_nano
- ubuntu-18.04_armv8_jetson_xavier
- ubuntu-18.04_x86_64
- ubuntu-20.04_x86_64
steps:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/daily_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ jobs:
- raspberry-pi-os_armv7
- raspberry-pi-os_armv8
- ubuntu-16.04_x86_64_ros
- ubuntu-18.04_armv8_jetson
- ubuntu-18.04_armv8_jetson_nano
- ubuntu-18.04_armv8_jetson_xavier
- ubuntu-18.04_x86_64
- ubuntu-20.04_x86_64
name: Build momo for ${{ matrix.name }}
Expand Down
21 changes: 20 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,27 @@

## develop

- [CHANGE] パッケージ名 `ubuntu-18.04_armv8_jetson``ubuntu-18.04_armv8_jetson_nano` と `ubuntu-18.04_armv8_jetson_xavier` に変更
- @tnoho
- [ADD] macOS でも全画面スクリーンキャプチャ機能を利用できるようにする
- @hakobera
- [ADD] Jetson Xavier シリーズで VP9 HWA を有効にする
- @tnoho @melpon
- [UPDATE] Jetson の RootFS 構築方法をリポジトリからの取得に変更
- @tnoho
- [UPDATE] `libwebrtc``M85.4183@{#1}` に上げる
- @hakobera @voluntas
- [UPDATE] CLI11 を v1.9.1 にアップデートする
- @voluntas
- [UPDATE] json を 3.8.0 に上げる
- @voluntas
- [UPDATE] cmake を 3.18.0 に上げる
- @voluntas

## 2020.7

- [UPDATE] `libwebrtc``M84.4147@{#7}` に上げる
- @voluntas, @melpon
- @voluntas @melpon
- [UPDATE] cmake を 3.17.3 に上げる
- @voluntas
- [UPDATE] Boost 1.73.0 にアップデートする
Expand All @@ -32,6 +49,8 @@
- @melpon
- [ADD] `raspberry-pi-os_armv8` を追加
- @melpon
- [ADD] ビデオコーデックのエンジン名を指定できる機能を実装
- @melpon
- [CHANGE] パッケージ名 `ubuntu-18.04_armv8_jetson_nano``ubuntu-18.04_armv8_jetson` に変更
- @melpon
- [CHANGE] パッケージ名 `raspbian-buster_armv6``raspbian-buster_armv7``raspberry-pi-os_armv6``raspberry-pi-os_armv7` に変更
Expand Down
60 changes: 42 additions & 18 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ elseif(MOMO_PACKAGE_NAME STREQUAL "macos")
set(TARGET_ARCH "x86_64")
set(USE_H264 ON)
set(USE_SDL2 ON)
set(USE_SCREEN_CAPTURER OFF)
set(USE_SCREEN_CAPTURER ON)
set(BOOST_ROOT_DIR ${_INSTALL_DIR}/boost)
set(SDL2_ROOT_DIR ${_INSTALL_DIR}/SDL2)
set(JSON_ROOT_DIR ${_INSTALL_DIR}/json)
Expand Down Expand Up @@ -143,7 +143,29 @@ elseif(MOMO_PACKAGE_NAME STREQUAL "raspberry-pi-os_armv8")

list(APPEND CMAKE_PREFIX_PATH /root/rootfs/usr/lib/aarch64-linux-gnu/cmake/SDL2)

elseif(MOMO_PACKAGE_NAME STREQUAL "ubuntu-18.04_armv8_jetson")
elseif(MOMO_PACKAGE_NAME STREQUAL "ubuntu-18.04_armv8_jetson_nano")

set(TARGET_OS "linux")
set(TARGET_OS_LINUX "ubuntu-18.04")
set(TARGET_ARCH "arm")
set(TARGET_ARCH_ARM "armv8")
set(USE_JETSON_ENCODER ON)
set(USE_H264 ON)
set(USE_SDL2 ON)
set(USE_LINUX_PULSE_AUDIO ON)
set(BOOST_ROOT_DIR /root/boost)
set(JSON_ROOT_DIR /root/json)
set(CLI11_ROOT_DIR /root/CLI11)
set(SDL2_ROOT_DIR /root/SDL2)
set(WEBRTC_INCLUDE_DIR /root/webrtc/include)
set(WEBRTC_LIBRARY_DIR /root/webrtc/lib)
set(CLANG_ROOT /root/llvm/clang)
set(SYSROOT /root/rootfs)

set(USE_LIBCXX ON)
set(LIBCXX_INCLUDE_DIR /root/llvm/libcxx/include)

elseif(MOMO_PACKAGE_NAME STREQUAL "ubuntu-18.04_armv8_jetson_xavier")

set(TARGET_OS "linux")
set(TARGET_OS_LINUX "ubuntu-18.04")
Expand Down Expand Up @@ -326,8 +348,8 @@ target_sources(momo
src/rtc/connection.cpp
src/rtc/device_video_capturer.cpp
src/rtc/h264_format.cpp
src/rtc/hw_video_decoder_factory.cpp
src/rtc/hw_video_encoder_factory.cpp
src/rtc/momo_video_decoder_factory.cpp
src/rtc/momo_video_encoder_factory.cpp
src/rtc/manager.cpp
src/rtc/native_buffer.cpp
src/rtc/observer.cpp
Expand Down Expand Up @@ -632,22 +654,23 @@ elseif (TARGET_OS STREQUAL "linux")

target_sources(momo
PRIVATE
src/hwenc_jetson/jetson_h264_encoder.cpp
src/hwenc_jetson/jetson_video_encoder.cpp
src/hwenc_jetson/jetson_video_decoder.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvBuffer.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvElement.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvElementProfiler.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvJpegDecoder.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvJpegEncoder.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvLogging.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvV4l2Element.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvV4l2ElementPlane.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvVideoConverter.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvVideoEncoder.cpp
${SYSROOT}/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvVideoDecoder.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvBuffer.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvElement.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvElementProfiler.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegDecoder.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegEncoder.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvLogging.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2Element.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2ElementPlane.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoConverter.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoEncoder.cpp
${SYSROOT}/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoDecoder.cpp
)

target_include_directories(momo PRIVATE ${SYSROOT}/include/libjpeg-8b)
target_include_directories(momo PRIVATE ${SYSROOT}/usr/src/jetson_multimedia_api/include)
target_include_directories(momo PRIVATE ${SYSROOT}/usr/src/jetson_multimedia_api/include/libjpeg-8b)
target_link_directories(momo PRIVATE ${SYSROOT}/usr/lib/aarch64-linux-gnu/tegra)
target_link_options(momo
PRIVATE
Expand All @@ -657,7 +680,8 @@ elseif (TARGET_OS STREQUAL "linux")
)
target_link_libraries(momo
PRIVATE
v4l2
nvv4l2
nvv4lconvert
nvbuf_utils
nvbuf_fdmap
nvddk_vic
Expand Down
11 changes: 10 additions & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,16 @@ Download the latest version of the binary for Jetson Nano from below.
https://github.com/shiguredo/momo/releases

```
momo-<VERSION>_ubuntu-18.04_armv8_jetson.tar.gz
momo-<VERSION>_ubuntu-18.04_armv8_jetson_nano.tar.gz
```

## Binary for Jetson Xavier NX / AGX

Download the latest version of the binary for Jetson Xavier NX / AGX from below.
https://github.com/shiguredo/momo/releases

```
momo-<VERSION>_ubuntu-18.04_armv8_jetson_xavier.tar.gz
```

## Use "test mode"
Expand Down
32 changes: 18 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,17 @@ https://momo.shiguredo.jp/

- Raspberry Pi の GPU に積まれている H.264 ハードウェアエンコーダー機能を利用することが可能です
- Apple macOS に搭載されている H.264 ハードウェアエンコーダー機能を [VideoToolbox](https://developer.apple.com/documentation/videotoolbox) 経由で利用しています
- NVIDIA Jetson Nano に搭載されている H.264 ハードウェアエンコーダー機能を利用することで 4K@30 での配信が可能です
- NVIDIA Jetson に搭載されている H.264 や VP9 ハードウェアエンコーダー機能を利用することで 4K@30 での配信が可能です
- NVIDIA ビデオカードに搭載されている H.264 ハードウェアエンコーダー機能を [NVIDIA VIDEO CODEC SDK](https://developer.nvidia.com/nvidia-video-codec-sdk) 経由で利用しています

### 4K 30fps での配信

Momo はハードウェアエンコーダを利用することで WebRTC で 4K 30fps の配信を実現可能です

### サイマルキャストへの対応

Momo は Sora モード利用時にサイマルキャスト(複数画質の同時配信)に対応しています。

### データチャネル経由でのシリアルの読み書き

Momo はデータチャネルを利用しシリアルに直接読み書きが可能です。信頼性より低遅延を優先したい場合の利用を想定しています。
Expand Down Expand Up @@ -163,34 +171,30 @@ limitations under the License.

**詳細は Discord やメールなどでお気軽にお問い合わせください**

- Jetson AGX Xavier 対応
- [ ] H.265 ハードウェアエンコーダ対応
- [ ] H.265 ハードウェアデコーダ対応
- Jetson Xavier NX 対応
- [ ] MotionJPEG ハードウェアデコーダ対応
- [ ] H.265 / H.264 / VP9 ハードウェアエンコーダ対応
- [ ] H.265 / H.264 / VP9 ハードウェアデコーダ対応
- [ ] H.265 ハードウェアエンコーダ対応
- [ ] H.265 ハードウェアデコーダ対応
- Jetson Nano
- [ ] H.265 ハードウェアエンコーダ対応
- [ ] H.265 ハードウェアデコーダ対応
- Raspberry Pi 4
- H.265 ハードウェアデコーダ対応
- [ ] H.265 ハードウェアデコーダ対応
- AV1 対応
- [x] macOS
- [x] Ubuntu
- [ ] Windows
- 統計機能
- [x] Sora のシグナリング経由での出力
- Ayame のシグナリング 経由での出力
- [ ] Ayame のシグナリング 経由での出力
- NVIDIA VIDEO CODEC SDK
- [x] H.264 ハードウェアエンコーダ対応
- [x] Ubuntu 18.04
- [x] Windows 10
- [ ] VP8 / VP9 / H.264 ハードウェアデコーダ対応
- Ubuntu 18.04
- Windows 10
- [ ] MotionJPEG ハードウェアデコーダ対応
- Ubuntu 18.04
- Windows 10
- Intel Media SDK 対応
- VP8 / VP9 / H.264 / H.265 ハードウェアエンコーダ対応
- [ ] VP8 / VP9 / H.264 / H.265 ハードウェアエンコーダ対応
- Simulcast 対応
- 録画対応
- MP4 形式での出力
Expand All @@ -207,9 +211,9 @@ Momo の原作者である @tnoho が書いた Momo のノウハウが沢山詰

### Discord

- **サポートしません**
- アドバイスします
- フィードバック歓迎します
- サポートしません

最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。

Expand Down
10 changes: 5 additions & 5 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
MOMO_VERSION=2020.7
WEBRTC_BUILD_VERSION=84.4147.7.2
MOMO_VERSION=2020.8
WEBRTC_BUILD_VERSION=85.4183.1.1
BOOST_VERSION=1.73.0
JSON_VERSION=3.7.3
CLI11_VERSION=1.9.0
JSON_VERSION=3.8.0
CLI11_VERSION=1.9.1
SDL2_VERSION=2.0.12
CMAKE_VERSION=3.17.3
CMAKE_VERSION=3.18.0
3 changes: 2 additions & 1 deletion build/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ _PACKAGES=" \
raspberry-pi-os_armv7 \
raspberry-pi-os_armv8 \
ubuntu-16.04_x86_64_ros \
ubuntu-18.04_armv8_jetson \
ubuntu-18.04_armv8_jetson_nano \
ubuntu-18.04_armv8_jetson_xavier \
ubuntu-18.04_x86_64 \
ubuntu-20.04_x86_64 \
"
Expand Down
12 changes: 0 additions & 12 deletions build/ubuntu-18.04_armv8_jetson/arm64.conf

This file was deleted.

83 changes: 0 additions & 83 deletions build/ubuntu-18.04_armv8_jetson/jetson.sh

This file was deleted.

File renamed without changes.
Loading

0 comments on commit e705053

Please sign in to comment.