Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/zhouwg/kantv

workbench for learing&practising AI tech in real scenario on Android device, powered by GGML(Georgi Gerganov Machine Learning) and NCNN(Nihui Convolutional Neural Network) and FFmpeg + OpenCV
https://github.com/zhouwg/kantv

edge-ai ffmpeg ffmpeg-android livetv llama-cpp ncnn-android whisper-cpp

Last synced: 22 days ago
JSON representation

workbench for learing&practising AI tech in real scenario on Android device, powered by GGML(Georgi Gerganov Machine Learning) and NCNN(Nihui Convolutional Neural Network) and FFmpeg + OpenCV

Lists

README

        

# KanTV

KanTV("Kan", aka Chinese PinYin "Kan" or Chinese HanZi "看" or English "watch/listen") , an open source project focus on Kan(aka "Watch/Listen" in English) online TV for **Android-based device**,derived from original ![ijkplayer](https://github.com/bilibili/ijkplayer) , with many enhancements:

- Watch online TV(by customized ![FFmpeg](https://github.com/zhouwg/FFmpeg) and Exoplayer with updated version:FFmpeg 6.1, Exoplayer 2.15)

- Record online TV to automatically generate videos (usable for short video creators to generate short video materials but pls respect IPR)

- Watch local media (movies, videos, music, etc.) on Android-based mobile phone

- Set up a custom playlist and then use this software to watch the content of the custom playlist

- Performance benchmark for Android-based mobile phone

- UI refactor

- ......

Pls attention this is **NOT** the latest source code of project KanTV and couldn't generate kantv-1.2.3 apk from source code. it will be ok someday.

### How to build project

#### prerequisites

- Host OS information:

```
uname -a

Linux 5.8.0-43-generic #49~20.04.1-Ubuntu SMP Fri Feb 5 09:57:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/issue

Ubuntu 20.04.2 LTS \n \l

```
- tools & utilities
```
sudo apt-get update
sudo apt-get install build-essential -y
sudo apt-get install cmake -y
sudo apt-get install curl -y
sudo apt-get install python -y
sudo apt-get install tcl expect -y
sudo apt-get install nginx -y
sudo apt-get install git -y
sudo apt-get install vim -y
sudo apt-get install spawn-fcgi -y
sudo apt-get install u-boot-tools -y
sudo apt-get install ffmpeg -y
sudo apt-get install openssh-client -y

sudo dpkg --add-architecture i386
sudo apt-get install lib32z1

sudo apt-get install android-tools-adb android-tools-fastboot autoconf \
automake bc bison build-essential ccache cscope curl device-tree-compiler \
expect flex ftp-upload gdisk acpica-tools libattr1-dev libcap-dev \
libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev \
libpixman-1-dev libssl-dev libtool make \
mtools netcat python-crypto python3-crypto python-pyelftools \
python3-pycryptodome python3-pyelftools python3-serial \
rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev

sudo apt-get install python3-pip -y
sudo apt-get install indent -y
pip3 install meson ninja

echo "export PATH=/home/`whoami`/.local/bin:\$PATH" >> ~/.bashrc

```

- bazel

download ![bazel-3.1.0](https://github.com/bazelbuild/bazel/releases?page=5) and install bazel manually

```
wget https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-linux-x86_64
```
```
sudo ./bazel-3.1.0-installer-linux-x86_64.sh
```

- Android NDK & Android Studio

download and install Android Studio and Android NDK manually

[Android Studio 4.2.1](https://developer.android.google.cn/studio)

[Android NDK-r18b](https://developer.android.com/ndk/downloads)

[Android NDK-r21e](https://developer.android.com/ndk/downloads)

- vim settings

fetch from http://ffmpeg.org/developer.html#Editor-configuration

```
set ai
set nu
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set noundofile
set nobackup
set fileformat=unix
set undodir=~/.undodir
set cindent
set cinoptions=(0
" Allow tabs in Makefiles.
autocmd FileType make,automake set noexpandtab shiftwidth=8 softtabstop=8
" Trailing whitespace and tabs are forbidden, so highlight them.
highlight ForbiddenWhitespace ctermbg=red guibg=red
match ForbiddenWhitespace /\s\+$\|\t/
" Do not highlight spaces at the end of line while typing on that line.
autocmd InsertEnter * match ForbiddenWhitespace /\t\|\s\+\%#\@ The latest prebuit KanTV apk(v1.2.3) is about 37M.[![Github](https://user-images.githubusercontent.com/6889919/122489234-c13db400-d011-11eb-9d8c-8e4b2555dabe.png)](https://github.com/zhouwg/kantv/blob/kantv/release/kantv-latest.apk?raw=true)

### Acknowledgement

Many/sincerely thanks to all contributors of the great open source community, especially all original authors and all contributors of the great Linux & Android & FFmpeg and other excellent projects.

The KanTV has used/tried following open-source projects:

### Support

- Please do not send e-mail to me. Public technical discussion on github is preferred.
- feel free to submit issues or new features(focus on Android at the moment), volunteer support would be provided if time permits.

### Roadmap

- integrate ![gstreamer](https://github.com/zhouwg/gstreamer) to project KanTV

- real-time subtitle(English / Chinese) with online TV (by ![DeepSpeech](https://github.com/zhouwg/DeepSpeech) / ![whisper.cpp](https://github.com/zhouwg/whisper.cpp))

- real-time advertisement analysis

- real-time illegal advertisement removal

- other device-side AI feature

- ...

### Contribution

If you want to contribute to project KanTV, be sure to review the [opening issues](https://github.com/zhouwg/kantv/issues?q=is%3Aopen+is%3Aissue).We use [GitHub issues](https://github.com/zhouwg/kantv/issues) for tracking requests and bugs, please see [how to submit issue in this project ](https://github.com/zhouwg/kantv/issues/1).

**English** is preferred in this project. thank your for your cooperation and appreciate your understanding.


### License

```
Copyright (c) 2017 Bilibili
Licensed under LGPLv2.1 or later
```

```
Copyright (c) 2021 - maintainer of project KanTV

Licensed under Apachev2.0 or later
```