https://github.com/mahyarkarimi/ffmpeg-ms
https://github.com/mahyarkarimi/ffmpeg-ms
converter fastapi ffmpeg microservice python
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/mahyarkarimi/ffmpeg-ms
- Owner: mahyarkarimi
- License: mit
- Created: 2021-09-18T09:29:36.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-03-26T08:48:16.000Z (about 2 years ago)
- Last Synced: 2024-08-07T23:43:40.140Z (over 1 year ago)
- Topics: converter, fastapi, ffmpeg, microservice, python
- Language: Python
- Homepage: https://mahyarkarimi.github.io/ffmpeg-ms/
- Size: 237 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FFMPEG microservice developed in python fastapi
A microservice for conversion of any sort of media using FFMPEG.
## Quick start
### Deploy using docker
[Dockerhub image link](https://hub.docker.com/r/mahyarkarimi/ffmpeg-ms)
```bash
docker run --rm -p 8000:8000 mahyarkarimi/ffmpeg-ms:0.1.1-alpine
```
### Deploy with docker-compose.yml
```yml
version: '3'
services:
api:
image: mahyarkarimi/ffmpeg-ms:0.1.1-alpine
restart: unless-stopped
ports:
- 8000:8000
volumes:
- ./.htpasswd:/app/.htpasswd
```
## Features
1. Convert any media with given ffmpeg style output format.
2. Stream output from `/convert` endpoint.
3. File based download from `/convert-file` endpoint.
4. Has rate limit for calling each endpoint based on user (default 5 requests per minute).
5. Can have basic authentication based on `/app/.htpasswd` file generated by htpasswd of apache2-utils. password must be encrypted with the bcrypt algorithm.
## Generate .htpasswd file
In order to activate authentication, generate `.htpasswd` file using `apache2-utils`.
Install `apache2-utils` on debian/ubuntu:
```bash
sudo apt-get install apache2-utils
```
To create user run the following command in terminal (replace \ and \ with your desired credentials):
```bash
htpasswd -B -cb .htpasswd
```
## API Documentation
FFMPEG file conversion microservice API documentation
## Version: 0.1.1
**Contact information:**
mahyarkarimi@rocketmail.com
**License:** [MIT](https://opensource.org/license/mit/)
### /convert
#### POST
##### Summary
Convert a media file (video or audio) and get response as stream
##### Description
Convert a media file and return as stream
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ---- |
| input_options | query | | No | string |
| output_options | query | | Yes | string |
| buffer_size | query | | No | integer |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Successful operation |
| 413 | file to convert is larger than upload size limit |
| 422 | Unprocessable entity when either file in body or action in query parameters is not available |
### /convert-file
#### POST
##### Summary
Convert a media file (video or audio) and get response as file
##### Description
Convert a media file and return as file
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ---- |
| input_options | query | | No | string |
| output_options | query | | Yes | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Successful operation |
| 413 | file to convert is larger than upload size limit |
| 422 | Unprocessable entity when either file in body or action in query parameters is not available |