2017-08-27 1 views
0

Après-midi. En utilisant ffmpeg je peux ouvrir un fichier SDP en utilisant la syntaxe:Rejoindre un flux vidéo dans ffmpeg en transmettant un fichier SDP en tant que données en ligne

ffmpeg -protocol_whitelist file -i file.sdp 

Est-ce que quelqu'un sait s'il est possible de rejoindre le flux décrit dans le fichier sdp sans avoir d'abord écrire le contenu dans un fichier?

Ainsi, par exemple, si le contenu du fichier SDP est:

v=0 
m=video 1234 RTP/AVP 96 
c=IN IP4 232.1.2.3 
a=rtpmap:96 MP4V-ES/90000 
a=source-filter: incl IN IP4 232.1.2.3 1.2.3.4 

Puis-je utiliser le type d'entrée de données décrit ici: https://ffmpeg.org/ffmpeg-protocols.html#data

Pour se joindre à la même faire quelque chose comme flux:

La réponse/semble/être non, mais je pensais que je demanderais "l'internet" au cas où je ferais simplement quelque chose de mal ...

Répondre

1

Vous pouvez diriger le contenu du fichier SDP vers ffmpeg comme suit.

printf "SDP:\nv=0\nm=video 1234 RTP/AVP 96\nc=IN IP4 232.1.2.3\na=rtpmap:96 MP4V-ES/90000\na=source-filter: incl IN IP4 232.1.2.3 1.2.3.4\n" | ffmpeg -i - -codec copy output.mp4 
+0

Merci - oui, cela semble fonctionner. Le seul inconvénient est que si j'essaie de rendre la solution générique, remplacer la chaîne sdp par (par exemple) une chaîne rtsp en utilisant la syntaxe ci-dessus ne fonctionne pas. Pour ne pas que je suis descendu la route d'utiliser ffmpeg -i où SDP est une variable qui est soit une chaîne (RTSP etc) ou un fichier SDP. La logique de décider qui est ailleurs. Pourtant, votre solution est à peu près là - merci! – user1447903