Maison > développement back-end > Golang > L'exemple de version du package Golang Joy4 ne fonctionne pas

L'exemple de version du package Golang Joy4 ne fonctionne pas

王林
Libérer: 2024-02-06 09:39:03
avant
957 Les gens l'ont consulté

Golang Joy4包发布示例不起作用

Contenu des questions

  • Serveur : https://github.com/nareix/joy4/tree/master/examples/http_flv_and_rtmp_server
  • Publier : https://github.com/nareix/joy4/tree/master/examples/rtmp_publish

J'ai d'abord démarré le serveur, puis j'ai exécuté rtmp_publish pour publier les données flv sur le serveur. Malheureusement, cela n'a pas fonctionné.

Ensuite, j'ai essayé de publier avec ffmpeg :

$ ffmpeg -re -i projectindex.flv -c copy -f flv rtmp://localhost:1936/app/publish
Copier après la connexion

Cela a fonctionné et je peux lire le flux en utilisant VLC.

Ensuite, j'ai vérifié les journaux sur le serveur. Pour ffmpeg, le journal contient accepter et parsing url. Mais pour rtmp_publish.go, le journal ne contient que accepter. acceptparsing url。但对于rtmp_publish.go,日志中仅包含accept


正确答案


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

Bonne réponse

J'ai utilisé le lien de https :// / Testé avec le fichier flv téléchargé (sample-3.flv) getsamplefiles.com/sample-video-files/flv, et avec ffmpeg et rtmp_publish/main. go< /code> fonctionnera tous. Pouvez-vous le tester avec ce fichier ? <p> <code>ffprobe检查了sample-3.flvSi cela fonctionne, il est probable que le fichier flv que vous avez testé à l'origine contienne un flux que le package ne prend pas en charge.

Informations que j'ai utilisées

 :

$ 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
Copier après la connexion
Vous pouvez vérifier votre sortie et comparer la sortie avec la sortie ci-dessus (mais je ne sais pas ce que ce package prend en charge ou ne prend pas en charge).

Note à tous ceux qui souhaitent exécuter cet exemple go.mod :

Tout d'abord, le code source de ce package ne contient pas de http_flv_and_rtmp_server 默认监听 1935 端口。所以如果我们不改变服务器,我们就得改变rtmp_publish/main.go fichiers. Créez-en un à la racine du dépôt :

$ go mod init github.com/nareix/joy4
Copier après la connexion

- 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")
Copier après la connexion
La commande ffplayffmpeg devrait être :

$ ffmpeg -re -i sample-3.flv -c copy -f flv rtmp://localhost:1935/app/publish
Copier après la connexion

Et le flux peut être joué en utilisant ffmpeggo run rtmp_publish/main.go 时请确保 sample-3.flv : 

$ ffplay http://localhost:8089/app/publish
Copier après la connexion
🎜Exécuter 🎜 dans le répertoire de travail actuel🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal