ausocean / openfish

OpenFish is an open-source system written in GoLang for classifying marine species. Tasks involve importing video or image data, classifying and annotating data (both manually and automatically), searching, and more. It is expected that OpenFish will use utilize computer vision and machine learning techniques.
https://ausocean.github.io/openfish/
Other
6 stars 0 forks source link

Draft: Experimental: Add media API #118

Open scott97 opened 6 months ago

scott97 commented 6 months ago

To train a ML network to classify marine life automatically, we are going to need the media (video or images) associated with each annotation for our training dataset. This PR adds a media API for fetching the video data of a videostream between two times.

GET /api/v1/videostreams/<videostream id>/media?time=00:00:01-00:00:03 HTTP/1.1

Downloading video from youtube is done by using yt-dlp to fetch and re-encode the video. This can be run locally using the provided dockerfile which installs this dependency.

This feature is experimental because it is not going to work with appengine - our current method of deployment. Appengine only supports golang, and yt-dlp is a python program that also brings ffmpeg along too. Using the docker image we could deploy using Google Cloud Run, however, we need to assess costs, and if our usage would fall within the free tier.

To-do