2011-01-18 4 views
2

Я хочу встроить поток веб-камеры (с видеосервера Geovision) на веб-сайт. К сожалению, только поток rtsp обеспечивает прямой доступ к видеоданным.Как конвертировать поток RTSP в поток flv/swf (w. Ffmpeg)?

Я пробовал кучу разных вариантов. С этой версией у меня не было ошибок:

openRTSP -b 50000 -w 352 -h 288 -f 5 -v -c -u admin password rtsp://xxxxxx.dyndns.org:8554/CH001.sdp | \ 
ffmpeg -r 5 -b 256000 -f mp4 -i - http://127.0.0.1:8090/feed1.ffm 

К сожалению, у меня нет видео. Иногда я вижу один кадр веб-камеры, но без живого потока.

Это мой ffserver.conf

Port 8090 
BindAddress 0.0.0.0 
MaxClients 200 
MaxBandwidth 20000 
CustomLog /var/log/flvserver/access.log 

NoDaemon 

# Server Status 
<Stream stat.html> 
Format status 
</Stream> 

<Feed feed1.ffm> 
File /tmp/feed1.ffm 
FileMaxSize 200K 
ACL allow 127.0.0.1 
</Feed> 

# SWF output - great for testing 
<Stream test.swf> 
# the source feed 
Feed feed1.ffm 
# the output stream format - SWF = flash 
Format swf 
#VideoCodec flv 
# this must match the ffmpeg -r argument 
VideoFrameRate 5 
# another quality tweak 
VideoBitRate 256K 
# quality ranges - 1-31 (1 = best, 31 = worst) 
VideoQMin 1 
VideoQMax 3 
VideoSize 352x288 
# wecams don't have audio 
NoAudio 
</Stream> 

Что я делаю неправильно? THe test.swf кажется, чтобы загрузить навсегда ...

ответ

2

Пытались что-то подобное с vlc и он работал для меня ...

vlc.exe -I http -vv camURL :sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=addr:availablePort} 

camurl является URL камеры ....

адр это адрес, где вы хотите httpstream быть отправлен ...

availablePor т порт, где вы хотите, чтобы httpstream быть отправлен

+0

Когда я запускаю команду, он говорит: отладочный вывод: используя SOUT цепь = ' transcodesamplerate = 44100: httpdst = 0.0.0.0: 9000 ' отладка основного потока: stream = '9000' основной поток из отладки: поиск sout stream module: 0 кандидатов основной поток из отладки: нет sout stream module соответствует« 9000 " основной поток из отладки: TIMER module_need(): 0,155 мс - всего 0,155 мс/1 инт. (Avg 0,155 мс) май n stream out debug: destroying chain ... (name = (null)) main stream out debug: destroying chain done ошибка основного потока: цепочка потоков не выполнена для 'transcodesamplerate = 44100: httpdst = 0.0.0.0: 9000 ' –

2

Вам нужно вставить кавычки в правильном направлении:

cvlc rtsp://192.168.13.162:554/ :sout='#transcode{vcodec=FLV1,vb=2048,fps=25,scale=1,acodec=none,deinterlace}:http{mime=video/x-flv,mux=ffmpeg{mux=flv},dst=0.0.0.0:5555/}' :no-sout-standard-sap :ttl=5 :sout-keep :no-audio --rtsp-caching 10200 --video --no-sout-audio --udp-caching=30000 --http-caching=5000