Quelles étapes sont nécessaires pour diffuser RTSP à partir de FFmpeg?
La diffusion UDP n'est pas un problème, mais comme je souhaite diffuser sur des appareils mobiles pouvant lire des flux RTSP en mode natif, je n'ai trouvé aucune configuration qui indique exactement ce dont vous avez besoin. Ai-je besoin d'un serveur de diffusion RTSP tel que LIVE555 ou puis-je utiliser uniquement FFmpeg?
Ma commande:
ffmpeg -i space.mp4 -vcodec libx264 -tune zerolatency -crf 18 -f rtsp -muxdelay 0.1 rtsp://192.168.1.200:1234
Je reçois une erreur d'entrée/sortie.
Ai-je besoin d'une description SDP pour utiliser RTSP? Et si oui, où dois-je la mettre?
Vous pouvez utiliser FFserver pour diffuser une vidéo à l’aide de RTSP.
Il suffit de changer la syntaxe de la console comme suit:
ffmpeg -i space.mp4 -vcodec libx264 -tune zerolatency -crf 18 http://localhost:1234/feed1.ffm
Créez un fichier ffserver.config
( sample ) dans lequel vous déclarez HTTPPort
, RTSPPort
et le flux SDP. Votre fichier de configuration pourrait ressembler à ceci (il manque peut-être des choses importantes):
HTTPPort 1234
RTSPPort 1235
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
</Feed>
<Stream test1.sdp>
Feed feed1.ffm
Format rtp
Noaudio
VideoCodec libx264
AVOptionVideo flags +global_header
AVOptionVideo me_range 16
AVOptionVideo qdiff 4
AVOptionVideo qmin 10
AVOptionVideo qmax 51
ACL allow 192.168.0.0 192.168.255.255
</Stream>
Avec une telle configuration, vous pouvez regarder le flux avec i.e. VLC en tapant:
rtsp://192.168.0.xxx:1235/test1.sdp
Voici le FFserver documentation.
Une alternative que j’avais utilisée à la place de FFServer était Red5 Pro, sur Ubuntu, j’utilisais cette ligne:
ffmpeg -f Pulse -i default -f video4linux2 -thread_queue_size 64 -framerate 25 -video_size 640x480 -i /dev/video0 -pix_fmt yuv420p -bsf:v h264_mp4toannexb -profile:v baseline -level:v 3.2 -c:v libx264 -x264-params keyint=120:scenecut=0 -c:a aac -b:a 128k -ar 44100 -f rtsp -muxdelay 0.1 rtsp://localhost:8554/live/paul