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.
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
[ ] support extracting single frames using the API
[ ] add a build flag so that this feature can be optionally included
[ ] pull timespan struct, parsing and formatting into different file.
[ ] Make API use video times, not absolute times elsewhere to be consistent.
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.
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