Compare commits

..

4 Commits

Author SHA1 Message Date
dexterlb 150e442f37 update example config 2024-10-12 15:15:11 +03:00
dexterlb d57f6258bb web_server option 2024-10-05 15:14:31 +03:00
dexterlb acf7d44fb3 add example config 2024-10-05 15:13:09 +03:00
dexterlb a36a5906f8 add initial scaffold for break player 2024-10-05 14:54:15 +03:00
6 changed files with 99 additions and 41 deletions

19
break_player/.gitignore vendored Normal file
View File

@ -0,0 +1,19 @@
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary, built with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Dependency directories (remove the comment below to include it)
# vendor/
# Go workspace file
go.work

View File

@ -0,0 +1,27 @@
package main
import (
"fmt"
"os"
"git.openfest.org/Video/openfest-video/break_player/mainservice"
)
func main() {
if len(os.Args) != 2 {
fmt.Fprintf(os.Stdout, "usage: %s <yaml config filename>\n", os.Args[0])
os.Exit(1)
}
svc, err := mainservice.New(os.Args[1])
if err != nil {
fmt.Fprintf(os.Stdout, "could not init main service: %s\n", err)
os.Exit(1)
}
err = svc.Serve()
if err != nil {
fmt.Fprintf(os.Stdout, "server died: %s\n", err)
os.Exit(1)
}
}

View File

@ -0,0 +1,34 @@
web_server:
bind: '[::]:8000'
player:
initial_playlist: 'off'
start_volume: 100
reset_volume_at_each_play: true
playlists:
- name: 'promo'
order: 'sequential'
media:
- '/home/human/s/random/blender_movies/big_buck_bunny_720_stereo-720p.mp4'
- '/home/human/s/random/blender_movies/sintel-the-movie-720p.mp4'
- name: 'openart_casting_couch'
media:
- 'rtmp://strm.ludost.net/openfest_interviews'
- name: 'openart_lecture'
media:
- 'rtmp://strm.ludost.net/openfest_interviews'
- name: 'ads'
order: 'shuffle'
media:
- '/home/human/s/random/blender_movies/big_buck_bunny_720_stereo-720p.mp4'
- '/home/human/s/random/blender_movies/sintel-the-movie-720p.mp4'
- '/home/human/s/random/blender_movies/elephants-dream-1080p.mp4'
- '/home/human/s/random/blender_movies/tears-of-steel.mp4'
- name: 'off'
media:
- '/home/human/s/random/placeholder.png'

3
break_player/go.mod Normal file
View File

@ -0,0 +1,3 @@
module git.openfest.org/Video/openfest-video/break_player
go 1.22.2

View File

@ -0,0 +1,16 @@
package mainservice
type MainService struct {
}
func New(configFileName string) (*MainService, error) {
// parse config
return nil, nil
}
func (s *MainService) Serve() error {
// start web server in goroutine
// start mpvipc in another goroutine
// go!
return nil
}

View File

@ -1,41 +0,0 @@
# Useful Stuff
This file contains information, links, tools/commands that can be useful for the video team.
## Testing
### Test Presentation
http://tochev.net/presentation-test/
### Sample RTMP Stream
```sh
ffmpeg -re -f lavfi -i testsrc=size=1920x1080:rate=30 -f lavfi -i "sine=frequency=220" -c:v libx264 -tune zerolatency -af "volume=1.0" -c:a aac -f flv rtmp://localhost/test.stream
```
The above command will send a 1080p test pattern with sine audio.
## Tools
### Play Video with Audio Bar
```sh
mpv --mute --demuxer-lavf-analyzeduration=30 --lavfi-complex='[aid1] asplit [t1] [ao] ; [t1] showvolume=w=1000:h=100 [t2] ; [vid1] [t2] overlay [vo]' SOME_VIDEO_SOURCE
```
Remove `--mute` if you want to start the video with an audible audio.
### ffprobe
```sh
ffprobe SOME_VIDEO_SOURCE
```
Test the resolution, length, codec, etc. of a video source.
## Resources
### Royalty-Free Music
- https://pixabay.com/music/ (do check the license of the file)