Heim >Backend-Entwicklung >Golang >Beispiel für die Veröffentlichung des Golang Joy4-Pakets funktioniert nicht

Beispiel für die Veröffentlichung des Golang Joy4-Pakets funktioniert nicht

王林
王林nach vorne
2024-02-06 09:39:03919Durchsuche

Golang Joy4包发布示例不起作用

Frageninhalt

  • Server: https://github.com/nareix/joy4/tree/master/examples/http_flv_and_rtmp_server
  • Veröffentlichen: https://github.com/nareix/joy4/tree/master/examples/rtmp_publish

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. acceptparsing url。但对于rtmp_publish.go,日志中仅包含accept


正确答案


我使用从 https:// 下载的 flv 文件 (sample-3.flv) 进行了测试getsamplefiles.com/sample-video-files/flv,并且 ffmpeg 和 rtmp_publish/main.go

Richtige Antwort

Ich habe den Link von https verwendet :// / Getestet mit der heruntergeladenen FLV-Datei (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.flvWenn 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 tbn
Sie 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 ffplayffmpeg sollte lauten:

$ ffmpeg -re -i sample-3.flv -c copy -f flv rtmp://localhost:1935/app/publish

Und der Stream kann mit ffmpeggo 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen