Some fixes to the localhost instructions.

This commit is contained in:
Luke Curley 2022-11-09 23:03:44 +00:00
parent 06f1b98082
commit de12598549
7 changed files with 11 additions and 37 deletions

View File

@ -50,7 +50,7 @@ wget http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBun
Use ffmpeg to create a LL-DASH playlist. This creates a segment every 2s and MP4 fragment every 10ms.
```
ffmpeg -i media/source.mp4 -f dash -use_timeline 0 -r:v 24 -g:v 48 -keyint_min:v 48 -sc_threshold:v 0 -tune zerolatency -streaming 1 -ldash 1 -seg_duration 2 -frag_duration 0.01 -frag_type duration media/fragmented.mpd
ffmpeg -i media/source.mp4 -f dash -use_timeline 0 -r:v 24 -g:v 48 -keyint_min:v 48 -sc_threshold:v 0 -tune zerolatency -streaming 1 -ldash 1 -seg_duration 2 -frag_duration 0.01 -frag_type duration media/playlist.mpd
```
You can increase the `frag_duration` (microseconds) to slightly reduce the file size in exchange for higher latency.
@ -72,7 +72,7 @@ The Warp server defaults to listening on UDP 4443. It supports HTTP/3 and WebTra
```
cd server
go run ./server
go run main.go
```
## Web Player

View File

@ -1,7 +1,7 @@
#!/bin/bash
set -euo pipefail
HOST="localhost.warp.demo"
HOST="localhost"
cd "$(dirname "${BASH_SOURCE[0]}")"

View File

@ -3,17 +3,4 @@ set -euxo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
# Generate a new RSA key/cert for local development
HOST="localhost.warp.demo"
openssl req \
-x509 \
-out "${HOST}.crt" \
-keyout "${HOST}.key" \
-newkey rsa:2048 \
-nodes \
-sha256 \
-subj "/CN=${HOST}" \
-extensions EXT \
-config <( \
printf "[dn]\nCN=${HOST}\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:${HOST}\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
mkcert -cert-file localhost.crt -key-file localhost.key localhost 127.0.0.1 ::1

View File

@ -1,7 +1,7 @@
{
"source": "src/index.html",
"scripts": {
"serve": "parcel serve --https --port 4444",
"serve": "parcel serve --https --host localhost --port 4444 --cert ../cert/localhost.crt --key ../cert/localhost.key",
"build": "parcel build",
"check": "tsc --noEmit"
},

View File

@ -11,7 +11,6 @@ require (
)
require (
github.com/alta/insecure v0.0.0-20210905232608-f5263498f0b2 // indirect
github.com/francoispqt/gojay v1.2.13 // indirect
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
github.com/golang/mock v1.6.0 // indirect

View File

@ -10,8 +10,6 @@ git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGy
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/abema/go-mp4 v0.7.2 h1:ugTC8gfEmjyaDKpXs3vi2QzgJbDu9B8m6UMMIpbYbGg=
github.com/abema/go-mp4 v0.7.2/go.mod h1:vPl9t5ZK7K0x68jh12/+ECWBCXoWuIDtNgPtU2f04ws=
github.com/alta/insecure v0.0.0-20210905232608-f5263498f0b2 h1:EywIbCj4slTFpT1rcE7g2MXFwjT5CynfVfwsERs+yuo=
github.com/alta/insecure v0.0.0-20210905232608-f5263498f0b2/go.mod h1:r6TOiezIAprr6kv8prNJ3SRKJKOVtcpizS1jU4RZdos=
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=

View File

@ -11,7 +11,6 @@ import (
"os"
"strings"
"github.com/alta/insecure"
"github.com/kixelated/invoker"
"github.com/kixelated/warp-demo/server/internal/warp"
)
@ -41,11 +40,11 @@ func main() {
func run(ctx context.Context) (err error) {
addr := flag.String("addr", "127.0.0.1:4443", "HTTPS server address")
cert := flag.String("tls-cert", "", "TLS certificate file path")
key := flag.String("tls-key", "", "TLS certificate file path")
cert := flag.String("tls-cert", "../cert/localhost.crt", "TLS certificate file path")
key := flag.String("tls-key", "../cert/localhost.key", "TLS certificate file path")
logDir := flag.String("log-dir", "", "logs will be written to the provided directory")
dash := flag.String("dash", "../media/fragmented.mpd", "DASH playlist path")
dash := flag.String("dash", "../media/playlist.mpd", "DASH playlist path")
flag.Parse()
@ -54,18 +53,9 @@ func run(ctx context.Context) (err error) {
return fmt.Errorf("failed to open media: %w", err)
}
var tlsCert tls.Certificate
if *cert != "" && *key != "" {
tlsCert, err = tls.LoadX509KeyPair(*cert, *key)
if err != nil {
return fmt.Errorf("failed to load TLS certificate: %w", err)
}
} else {
tlsCert, err = insecure.Cert()
if err != nil {
return fmt.Errorf("failed to create insecure cert: %w", err)
}
tlsCert, err := tls.LoadX509KeyPair(*cert, *key)
if err != nil {
return fmt.Errorf("failed to load TLS certificate: %w", err)
}
config := warp.ServerConfig{