2012-03-28 12 views
6

So habe ich mit FFMPEG auf ein Projekt, das Streaming von Video von einem Computer zu einem anderen über das Internet mit RTP umfasst. Ich möchte das in ffmpeg aufnehmen und ffserver verwenden, um es in einem lokalen Netzwerk anzuzeigen.So generieren Sie SDP-Datei von FFMPEG

Wie ich es verstehe, müssen Sie eine SDP-Informationen haben, damit die empfangende ffmpeg-Instanz den RTP-Stream interpretieren kann. Trotz dieser Webseiten kann ich die SDP-Informationen nicht in den Informationen finden, die auf der Konsole ausgegeben werden.

Wie kann ich erzwingen, dass die übertragende ffmpeg-Instanz die SDP-Informationen ausgibt, damit ich sie zum Konfigurieren meines Empfangs verwenden kann?

Momentan teste ich unter Windows 7, aber die endgültige Lösung wird auf Linux sein.

Der Befehl, den ich für den Test renne ist

ffmpeg -fflags +genpts -i files\2005-SFSD-sample-mpeg1.mpg -threads 0 -r 10 -g 45 
-s 352x240 -deinterlace -y 2005.mp4 -an -threads 0 -r 10 -g 45 -s 352x240 
-deinterlace -f rtp rtp://192.168.200.198:9008 

Meine ffmpeg Informationen ...

ffmpeg version 0.8, Copyright (c) 2000-2011 the FFmpeg developers built on Jun 23 2011 14:22:23 with gcc 4.5.3 
configuration: 
--disable-static 
--enable-shared 
--enable-gpl 
--enable-version3 
--enable-memalign-hack 
--enable-runtime-cpudetect 
--enable-avisynth 
--enable-bzlib 
--enable-frei0r 
--enable-libopencore-amrnb 
--enable-libopencore-amrwb 
--enable-libfreetype 
--enable-libgsm 
--enable-libmp3lame 
--enable-libopenjpeg 
--enable-librtmp 
--enable-libschroedinger 
--enable-libspeex 
--enable-libtheora 
--enable-libvorbis 
--enable-libvpx 
--enable-libx264 
--enable-libxavs 
--enable-libxvid 
--enable-zlib 
--disable-outdev=sdl 
    libavutil 51. 9. 1/51. 9. 1 
    libavcodec 53. 7. 0/53. 7. 0 
    libavformat 53. 4. 0/53. 4. 0 
    libavdevice 53. 1. 1/53. 1. 1 
    libavfilter 2. 23. 0/2. 23. 0 
    libswscale 2. 0. 0/2. 0. 0 
    libpostproc 51. 2. 0/51. 2. 0 

Antwort

1

Normalerweise, wenn der Ausgang ist ein RTP-Stream, ffmpeg druckt die SDP-Informationen in der Konsole, so dass Sie es einfach umleiten müssen (und dann die SDP verwenden):

ffmpeg -fflags +genpts -i files\2005-SFSD-sample-mpeg1.mpg -an -threads 0 -r 10 -g 45 -s 352x240 -deinterlace -f rtp rtp://192.168.200.198:9008 > config.sdp 

Aber von yo Ihr Befehl sieht aus wie Sie wollen eine Codierung für zwei Ausgänge zu tun ... wenn die beiden Ausgänge rtp sind (hilfreich für Video + Audio) funktioniert es gut, aber ich konnte nicht bekommen es die sdp zu drucken, wenn 1 Ausgabe rtp ist und die anderen mp4 ... nicht sicher, wenn möglich

Wie auch immer Sie tun können, ist es, die SDP-Datei zum ersten Mal zu generieren, und solange Sie nicht die Videoeigenschaften ändern (Auflösung Format ...) oder die rtp-adresse diese sdp-datei wird gültig sein und ihr vorheriger Befehl würde damit funktionieren !!

hoffte, das hilft

+0

http://lucabe72.blogspot.com/2010/04/rtp-streaming-with-ffmpeg.html kann verwandt sein – rogerdpack

+0

Das ist mein Befehl: ffmpeg -i rtp: //239.255.42.42: 5004 c: /33030ooo.mp4> c: /config.sdp ----- aber config.sdp ist leer! –

+0

@ Mr.Hyde möchten Sie das MP4-Video über RTP streamen, oder? Probieren Sie es aus (ich habe es nicht mit neuen ffmpeg cli getestet) 'ffmpeg -i c: /33030ooo.mp4 rtp: //239.255.42.42: 5004> c:/config.sdp' – code7amza

1

Für den Fall, jemand war auf der Suche zu finden, wie diese mit ffmpeg C-Code zu tun, können Sie av_sdp_create-generate an sdp string

Verwandte Themen