Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
projects:stream-observer_strobs [2020/10/25 22:13] – [Data entry] simpelprojects:stream-observer_strobs [2020/10/25 22:36] – [Stream-Observer (strobs)] simpel
Line 2: Line 2:
  
 ---- dataentry project ---- ---- dataentry project ----
-name                : Stream-Observer (strobs) +name                : Stream-Observer (strobs)  
-project-owner       : simpel +project-owner       : simpel  
-git-url_url         : https://github.com/SimpelMe/stream-observer +git-url_url         : https://github.com/SimpelMe/stream-observer  
-project-description : Stream-Observer (strobs) is a tool to observe running voc video streams. +project-description : Stream-Observer (strobs) is a tool to observe running voc video streams.  
-project-member      : @@project member@@ +project-member      :  #  
-project-status_     : idea+project-status     : testing # 
 ---- ----
 +----
 +The script opens mpv with all active (currently streaming) streams from [Chaos Computer Club](https://www.ccc.de/en) made by [VOC](https://c3voc.de) (video operation center) in a playlist as found at [https://streaming.media.ccc.de](https://streaming.media.ccc.de).
 +Optionally it can also try to open all streams given in a valid playlist.
 +
 +First make `strobs` executable with `chmod +x strobs`. Then execute `./strobs`.
 +Install mpv if not existing.
 +
 +
 +== Options
 +Usage: strobs [ -d | -D | -f | -h | -j | -k | -m | -n | -p _file_ | -s | -t | -v | -V | -x]
 +* -d debug mode: print commands and arguments while executed
 +* -D debug mode: print script lines while read
 +* -f forces (with -p / -j) open playlist / download full json
 +* -h help shown
 +* -j json export to disk
 +* -k keys/shortcuts shown (`input.conf` needed)
 +* -m man page shown (`strobs.1` needed)
 +* -n name stream with technical extension
 +* -p playlist _file_ with servers in format m3u8
 +* -s sort server list alphanumerical
 +* -t timetable of running and coming events shown
 +* -v verbosity increasing with _v_
 +* -V version print
 +* -x exit before mpv, keeps current-playlist.m3u8
 +
 +==Details
 +The script downloads [http://live.ber.c3voc.de:7999/status-json.xsl](http://live.ber.c3voc.de:7999/status-json.xsl) and searches for active (current streaming) streams.
 +It reads then [https://streaming.media.ccc.de/streams/v2.json](https://streaming.media.ccc.de/streams/v2.json) and extracts end time of the streams and their display names.
 +With this informations it builds a playlist in m3u8 format and starts mpv with this playlist.
 +
 +== Examples
 +* `strobs` - opens current streams in mpv.
 +* `strobs -p 36c3.m3u8 -s` - uses the playlist 36c3.m3u8 for mpv. In addition it will sort the returned streams alphanumerical.
 +* `strobs -j -f` - will download and save status\_liveber.xsl, status\_ingest.xsl, current.json and exit before opening mpv. In addition it will save json including past events.
 +
 +== Files
 +* `current-playlist.m3u8` - generated playlist while running
 +* `input.conf` - user-defined key bindings for mpv
 +* `keys.lua` - script with key bindings for audio, video and rooms
 +* `strobs` - the shell script to execute
 +* `strobs.1` - man page
 +* `voctocat.png` - image used as last playlist item, so mpv does not stop
 +
 +Only `strobs` is absolutely necessary observe running voc video streams.
 +
 +== Keys and shortcuts
 +=== defined by lua scripts
 +* 1 – 0 room number 1 to 10
 +* q select native audio
 +* w select translation 1
 +* e select translation 2
 +* y select video mixer output
 +* x select slides
 +
 +=== defined defaults by input.conf
 +* RIGHT seek  5
 +* LEFT  seek -5
 +* UP    seek  60
 +* DOWN  seek -60
 +* Shift+PGUP seek 600
 +* Shift+PGDWN seek -600
 +* SPACE cycle pause
 +* \> playlist-next; skip to next room
 +* < playlist-previous; skip to previous room
 +* i toggle transport osd
 +* I (upper i) toggle display stats
 +* ctrl++ add audio-delay 100ms; this changes audio/video sync
 +* ctrl+- add audio-delay -100ms
 +* m cycle mute
 +* d cycle deinterlace
 +* \# cycle audio
 +* _ cycle video
 +* f cycle fullscreen
 +* s screenshot
 +* F8 show rooms
 +* F9 show list of audio/sub streams
 +
 +== Fixed mpv options
 +It is starting a playlist in mpv with following options:
 +* --fs
 +  * full screen
 +* --no-ytdl
 +  * disable the youtube-dl hook-script (404 should try next stream immediately)
 +* --msg-level=all=error,ffmpeg=fatal
 +  * all modules just error messages, but ffmpeg/video fatal (because of permanent irrelevant PoC errors)
 +* --no-input-default-bindings
 +  * deactivate all default key bindings
 +* --input-conf=${progpath}input.conf
 +  * look for configuration file in the same directory where strobs is starting
 +* --load-scripts=no
 +  * don't load any scripts from personal config
 +* --scripts=keys.lua
 +  * load these script:${progpath}keys.lua
 +* --force-window=immediate
 +  * create the gui immediately on program start
 +* --keep-open=always
 +  * don't terminate if the current file is ending and playback will never automatically advance to the next file
 +* --idle=yes
 +  * wait idly instead of quitting when there is no file to play
 +* --vd-lavc-show-all=yes
 +  * don't wail until an initial keyframe was decoded for a quicker startup
 +* --no-initial-audio-sync
 +  * audio is started immediately even if start timestamp differs from video, if necessary video timing is gradually adjusted
 +* --audio-stream-silence=yes
 +  * when pausing playback or stop and restart audio on seeks, audio is not stopped and silence is played
 +* --demuxer-cache-wait=no
 +  * don't read data until the demuxer cache has reached maximum capacity
 +* --screenshot-format=png
 +  * set the screenshot image file type to png (default: jpg)
 +* --script-opts=osc-visibility=always
 +  * visibility mode of on screen controller
 +* --osd-duration=5000
 +  * set the duration of the OSD messages in ms (default: 1000)
 +*   --osd-msg1="room: 1 – 0       audio: q, w, e - Native, Translated 1, Translated 2       video: y, x - HD, Slides"
 +    * show this string as message on OSD with OSD level 1 (visible by default)
 +    * used as minimal manual
 +* --no-osd-bar
 +  * disable display of the OSD bar while seeking
 +* --osd-font-size=30
 +  * specify the OSD font size (default: 55)
 +* --osd-spacing=1
 +  * horizontal OSD font spacing in scaled pixels (default: 0)
 +* --osd-border-size=1
 +  * size of the OSD font border in scaled pixels (default: 3)
 +* --osd-margin-x=10
 +  * left and right screen margin for the OSD in scaled pixels
 +* --osd-margin-y=4
 +  * top and bottom screen margin for the OSD in scaled pixels
  
  
  • projects/stream-observer_strobs.txt
  • Last modified: 2024/01/21 17:49
  • by simpel