Heim >Backend-Entwicklung >Golang >Beispiel für die Veröffentlichung des Golang Joy4-Pakets funktioniert nicht
Ich habe zuerst den Server gestartet und dann rtmp_publish
ausgeführt, um die FLV-Daten auf dem Server zu veröffentlichen. Leider hat es nicht geklappt.
Danach habe ich versucht, mit ffmpeg zu veröffentlichen:
$ ffmpeg -re -i projectindex.flv -c copy -f flv rtmp://localhost:1936/app/publish
Es hat funktioniert und ich kann den Stream mit VLC abspielen.
Dann habe ich die Protokolle auf dem Server überprüft. Für ffmpeg enthält das Protokoll accept
und parsing url
. Aber für rtmp_publish.go
enthält das Protokoll nur accept
. accept
和parsing url
。但对于rtmp_publish.go
,日志中仅包含accept
。
我使用从 https:// 下载的 flv 文件 (sample-3.flv
) 进行了测试getsamplefiles.com/sample-video-files/flv,并且 ffmpeg 和 rtmp_publish/main.go
sample-3.flv
) getsamplefiles.com/sample-video-files/flv und mit ffmpeg und rtmp_publish/main. go wird alles funktionieren. Können Sie es mit dieser Datei testen? <p>
<code>ffprobe
检查了sample-3.flv
Wenn es funktioniert, enthält die ursprünglich getestete FLV-Datei wahrscheinlich einen Stream, den das Paket nicht unterstützt.
Informationen, die ich verwendet habe
:
$ ffprobe sample-3.flv input #0, flv, from 'sample-3.flv': metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : lavf56.15.102 duration: 00:00:30.08, start: 0.000000, bitrate: 7836 kb/s stream #0:0: video: h264 (constrained baseline), yuv420p(progressive), 1920x1080 [sar 1:1 dar 16:9], 8000 kb/s, 25 fps, 25 tbr, 1k tbnSie können Ihre Ausgabe überprüfen und die Ausgabe mit der obigen Ausgabe vergleichen (aber ich weiß nicht, was dieses Paket unterstützt und was nicht).
Hinweis für alle anderen, die dieses Beispiel ausführen möchten go.mod
:
Zuallererst enthält der Quellcode dieses Pakets keine http_flv_and_rtmp_server
默认监听 1935
端口。所以如果我们不改变服务器,我们就得改变rtmp_publish/main.go
Dateien. Erstellen Sie eine im Stammverzeichnis des Repositorys:
$ go mod init github.com/nareix/joy4:
- file, _ := avutil.open("projectindex.flv") - conn, _ := rtmp.dial("rtmp://localhost:1936/app/publish") + file, _ := avutil.open("sample-3.flv") + conn, _ := rtmp.dial("rtmp://localhost:1935/app/publish")Der Befehl
ffplay
ffmpeg sollte lauten:
$ ffmpeg -re -i sample-3.flv -c copy -f flv rtmp://localhost:1935/app/publish
Und der Stream kann mit ffmpeg
或 go run rtmp_publish/main.go
时请确保 sample-3.flv
abgespielt werden:
$ ffplay http://localhost:8089/app/publish🎜Führen Sie 🎜 im aktuellen Arbeitsverzeichnis aus🎜
Das obige ist der detaillierte Inhalt vonBeispiel für die Veröffentlichung des Golang Joy4-Pakets funktioniert nicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!