2011-10-02 3 views
1

Je veux construire une sorte d'enveloppe de flux:Re-Stream MPEG2 TS PAL flux avec crtmpserver

Je possède une vieille Dreambox PAL Sat Reciever avec réseau. Ce flux que je veux transcoder à une résultion inférieure un restream il.

Mon but est, d'avoir un site web simple, où ce flux est intégré via rtmp.

Je pense que crtmpserver devrait être le bon logiciel. Pour l'instant, j'ai un site en cours d'exécution et peut lire des fichiers locaux via jwplayer/crtmpserver.

Je cherche une solution pour cela:

HTTPUrl -> ffmpeg -> crtmpserver

Est-ce possible? Puis-je rediriger la sortie de ffmpeg vers un tube classé, et crtmpserver pourrait saisir cela? Ou aller avec UDP?

Des conseils appréciés !!! Merci!!

Répondre

3

C'est facile:

  1. Démarrez le serveur (en mode console pour le débogage) Vous devriez voir quelque chose comme ceci:

    | tcp | 0.0.0.0 | 9999 | InboundTcpTs | flvplayback |

Fondamentalement, qui est un accepteur d'tcp pour mpegts flux

  1. Utilisation ffmpeg pour créer le courant:

    ffmpeg -i < source> < source_related_parameters> < audio_codec_parameters> < video_codec_parameters> -f mpegts "tcp: //127.0.0.1: 9999"

Exemple:

ffmpeg -i /tmp/aaa.flv -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts "tcp://127.0.0.1:9999" 
  1. Revenir au serveur et regarder la console. Vous devriez voir quelque chose comme ceci:

    flux INTS (6) avec le nom ts_13_257_256 enregistré à l'application flvplayback du protocole ITS (13)

ts_13_257_256 est le nom du flux.Maintenant, vous pouvez utiliser jwplayer ou un lecteur similaire et pointer vers ce flux

Si vous souhaitez utiliser UDP, vous devez arrêter le serveur et modifier le fichier de configuration au lieu d'avoir

protocol="inboundTcpTs" 

vous devriez avoir

protocol="inboundUdpTs" 

Yo UCAN copie même la section et changer le numéro de port d'avoir les deux. Aussi, vous devez changer le ffmpeg donc au lieu d'avoir tcp: //127.0.0.1: 9999 vous pouvez avoir udp: //127.0.0.1: 9999

Maintenant, si vous voulez aussi un nom de flux et non pas ts_13_257_256 (qui est par la voie ts_protocolId_AudioPID_VideoPID) vous pouvez utiliser LiveFLV de manière similaire:

ffmpeg -i /tmp/aaa.flv -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv -metadata streamName=myStreamName "tcp://127.0.0.1:6666" 

Et le serveur doit montrer:

Stream INLFLV(1) with name `myStreamName` registered to application `flvplayback` from protocol ILFL(3) 

Voilà, vous avez maintenant un flux « calculé » nom qui est myStreamName

Une dernière observation. Veuillez poser ce genre de questions sur la liste de diffusion de crtmpserver. Vous serez mieux entendu. Vous pouvez trouver des ressources ici: http://www.rtmpd.com/resources/ Recherchez le groupe Google sous

Cheers, Andrei

+0

Merci pour cette grande explication! Fonctionne comme un charme ..! ;-) – mblaettermann

+0

Ohh qui a vraiment emballé un poinçon d'information qui vaut la peine d'être lu. Merci l'homme +1! – ppumkin

Questions connexes