Как сгенерировать файл SDP из FFMPEG

Итак, я работал с FFMPEG над проектом, который включает потоковую передачу видео с одного компьютера на другой через Интернет с помощью RTP. Я хочу перенести это в ffmpeg и использовать ffserver для отображения в локальной сети.

Насколько я понимаю, вам нужна информация 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 

person MobilityLab    schedule 28.03.2012    source источник


Ответы (4)


https://stackoverflow.com/a/16469378/2097284 более подробно объясняет, как создать файл .sdp и как передать это ffplay.

person Camille Goudeseune    schedule 09.05.2013

FFMPG создает файл SDP, если он указан с помощью -sdp_file path/to/file

Отрывок из документации:

-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).

person David Andreoletti    schedule 29.10.2017
comment
Я люблю тебя, ты спас меня от множества головных болей - person Marcelo Teixeira Ruggeri; 26.06.2019

На всякий случай, если кто-то искал, как это сделать с помощью кода Ffmpeg C, вы можете использовать av_sdp_create для создать строку sdp

person Victor.dMdB    schedule 20.11.2016

Обычно, когда вывод представляет собой один поток 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

Но из вашей команды похоже, что вы хотите выполнить одну кодировку для двух выходов ... если два выхода - это rtp (полезно для видео + аудио), он работает нормально, но я не мог заставить его распечатать sdp, когда 1 выход - rtp а другой mp4 ... не уверен, если возможно

В любом случае, что вы можете сделать, так это создать файл sdp в первый раз, и до тех пор, пока вы не измените характеристики видео (формат разрешения ...) или адрес rtp, этот файл sdp будет действителен, и ваша предыдущая команда будет работать с ним !!

надеюсь это поможет

person code7amza    schedule 06.04.2012
comment
lucabe72.blogspot.com/2010/04/rtp-streaming- with-ffmpeg.html может быть связано - person rogerdpack; 29.01.2014
comment
Это моя команда: ffmpeg -i rtp: //239.255.42.42: 5004 c: /33030ooo.mp4 ›c: /config.sdp ----- но сделанный config.sdp пуст! - person Dr.jacky; 05.10.2015
comment
@ Мистер Хайд, вы хотите транслировать видео в формате mp4 через rtp, верно? Попробуйте это (я не тестировал с новым ffmpeg cli) ffmpeg -i c:/33030ooo.mp4 rtp://239.255.42.42:5004 > c:/config.sdp - person code7amza; 05.10.2015