2012-03-28 79 views
6

因此,我一直在使用FFMPEG處理一個項目,該項目涉及使用RTP通過互聯網從一臺計算機向另一臺計算機傳輸視頻。我想將它帶入ffmpeg並使用ffserver將其顯示在本地網絡上。如何從FFMPEG生成SDP文件

據我所知,你需要有一個SDP信息,以便接收ffmpeg實例可以解釋RTP流。儘管網頁上說了什麼,我無法在打印到控制檯的信息中找到SDP信息。

如何強制傳輸ffmpeg實例輸出SDP信息,以便我可以使用它來配置我的接收端?

現在,我正在測試Windows 7,但最終的解決方案將在Linux上。

我跑測試的命令是

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 

我的ffmpeg的信息是...

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 

回答

1

通常,當輸出爲一個RTP流,打印的ffmpeg在SDP中的信息控制檯,所以你只需要重定向它(然後使用sdp):

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 

但是從喲ur命令它看起來像你想做兩個輸出的編碼... 如果兩個輸出是rtp(對視頻+音頻有幫助),它工作正常,但我不能 得到它打印sdp當1輸出是rtp和其他mp4 ...不知道如果可能

無論如何,你可以做的是雖然是第一次生成sdp文件,只要你不改變視頻特性(分辨率格式...)或該sdp文件的rtp地址將是有效的,並且您的上一個命令可以使用它!

希望這有助於

+0

http://lucabe72.blogspot.com/2010/04/rtp-streaming-with-ffmpeg.html可能有關 – rogerdpack 2014-01-28 20:58:06

+0

這是我的命令:ffmpeg -i rtp://239.255.42.42:5004 c:/33030ooo.mp4> c:/config.sdp -----但是讓config.sdp爲空! – 2015-10-05 07:06:14

+0

@ Mr.Hyde你想通過rtp傳輸mp4視頻,對吧? 嘗試此(我還沒有與新的ffmpeg CLI測試它) '的ffmpeg -i C:/33030ooo.mp4 RTP://239.255.42.42:5004> C:/ config.sdp' – code7amza 2015-10-05 13:33:49

0

FFMPG生成SDP文件:

-sdp_file file (global) Print sdp information for an output stream to file. This allows dumping sdp information when at least one output isn’t an rtp stream. (Requires at least one of the output formats to be rtp).