Skip to content
Snippets Groups Projects
Verified Commit 4834319d authored by Hugo Renard's avatar Hugo Renard
Browse files

init

parents
No related branches found
No related tags found
No related merge requests found
Pipeline #926 failed with stage
in 6 seconds
.env
\ No newline at end of file
variables:
REGISTRY_REPO: libresh/encode-stream
package:
script:
- cp $DOCKER_SECRET_CONFIG /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Containerfile --destination $REGISTRY_REPO
only:
- main
FROM alpine:3
WORKDIR /data
RUN apk add --no-cache ffmpeg wget jq
RUN wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
RUN chmod +x /usr/local/bin/mc
COPY ./encode.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/encode.sh
ENTRYPOINT ["encode.sh"]
CMD ["run"]
# encode-stream
## Environments
- **INPUT_HOST**
- **INPUT_ACCESS_KEY**
- **INPUT_SECRET_KEY**
- **INPUT_BUCKET**
- **INPUT_FILTER**
- **OUTPUT_HOST** (defaults to INPUT_HOST)
- **OUTPUT_ACCESS_KEY** (defaults to INPUT_ACCESS_KEY)
- **OUTPUT_SECRET_KEY** (defaults to INPUT_SECRET_KEY)
- **OUTPUT_BUCKET**
- **OUTPUT_NAME**
You can put them in a `.env`.
## Commands
### Shell
#### List stream prefixes from only day
```shell
$ encode.sh list 2021-12-01
```
#### Run the encoding
```shell
$ encode.sh run
```
### Docker
```shell
$ docker run --rm --env-file .env libresh/encode-stream list 2021-12-01
```
### K8s
```shell
$ kubectl apply -k .
```
#!/bin/sh
DATE=$2
set_alias(){
if [[ -z $OUTPUT_HOST ]]; then
OUTPUT_HOST=$INPUT_HOST
OUTPUT_ACCESS_KEY=$INPUT_ACCESS_KEY
OUTPUT_SECRET_KEY=$INPUT_SECRET_KEY
fi
mc alias set input $INPUT_HOST $INPUT_ACCESS_KEY $INPUT_SECRET_KEY
mc alias set output $OUTPUT_HOST $OUTPUT_ACCESS_KEY $OUTPUT_SECRET_KEY
}
run() {
set_alias
for file in $(mc ls --json input/$INPUT_BUCKET | jq -rs --arg filter "$INPUT_FILTER" 'map(select(.key|contains($filter)))[].key'); do
mc cp input/$INPUT_BUCKET/$file ./
echo "file $file" >> stream.list
done
FILE=$OUTPUT_NAME.mp4
ffmpeg -f concat -i stream.list -c copy $FILE
mc cp ./$FILE output/$OUTPUT_BUCKET/$FILE
}
list() {
set_alias
mc ls input/$INPUT_BUCKET --json | jq -rs --arg date "$DATE" 'map({date:.lastModified,key:.key|match("stream-.{9}")|.string})|unique_by(.key)|map(select(.date|contains($date))|.key)[]'
}
case $1 in
run)
run;;
list)
list;;
*)
echo "Command no found. Help :"
echo -e "\tencode.sh run"
echo -e "\tencode.sh list <DATE:2021-12-01>";;
esac
job.yaml 0 → 100644
apiVersion: batch/v1
kind: Job
metadata:
name: encode-stream
spec:
ttlSecondsAfterFinished: 100
backoffLimit: 0
template:
spec:
containers:
- name: main
image: libresh/encode-stream
envFrom:
- secretRef:
name: encode-stream
volumeMounts:
- name: data
mountPath: /data
restartPolicy: Never
volumes:
- name: data
emptyDir: {}
secretGenerator:
- name: encode-stream
env: .env
resources:
- job.yaml
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment