2012-03-28 39 views
6

Vì vậy, tôi đã làm việc với FFMPEG trên một dự án liên quan đến việc truyền video từ máy tính này sang máy tính khác trên Internet bằng RTP. Tôi muốn đưa nó vào ffmpeg và sử dụng ffserver để hiển thị nó trên một mạng cục bộ.Cách tạo tệp SDP từ FFMPEG

Như tôi đã hiểu, bạn cần có thông tin SDP để trường hợp ffmpeg nhận có thể diễn giải luồng RTP. Mặc dù các trang web nói gì, tôi không thể tìm thấy thông tin SDP trong thông tin được in trên bảng điều khiển.

Làm cách nào để buộc trường hợp truyền ffmpeg xuất ra thông tin SDP để tôi có thể sử dụng nó để định cấu hình kết thúc nhận của mình?

Hiện tại, tôi đang thử nghiệm trên Windows 7, nhưng giải pháp cuối cùng sẽ có trên Linux.

Lệnh Tôi đang chạy để thử nghiệm là

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 

thông tin ffmpeg của tôi là ...

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 

Trả lời

1

Thông thường khi đầu ra là một trong những dòng rtp, in ffmpeg thông tin SDP trong giao diện điều khiển để bạn chỉ cần chuyển hướng nó (và sau đó sử dụng 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 

Nhưng từ yo lệnh ur có vẻ như bạn muốn làm một mã hóa cho hai đầu ra ... nếu hai đầu ra là rtp (hữu ích cho video + âm thanh) nó hoạt động tốt, nhưng tôi không thể làm cho nó để in sdp khi 1 đầu ra là rtp và mp4 khác ... không chắc chắn nếu có thể

Dù sao bạn có thể làm là tạo tệp sdp lần đầu tiên và miễn là bạn không thay đổi đặc điểm video (định dạng độ phân giải ...) hoặc địa chỉ rtp tệp sdp này sẽ hợp lệ và lệnh trước của bạn sẽ hoạt động với nó !!

hy vọng điều này giúp

+0

http://lucabe72.blogspot.com/2010/04/rtp-streaming-with-ffmpeg.html có thể liên quan – rogerdpack

+0

Đây là lệnh của tôi: ffmpeg -i rtp: //239.255.42.42: 5004 c: /33030ooo.mp4> c: /config.sdp ----- nhưng config.sdp đã trống! –

+0

@ Mr.Hyde bạn muốn truyền video mp4 qua rtp, phải không? Hãy thử điều này (tôi chưa thử nghiệm nó với clf ffmpeg mới) 'ffmpeg -i c: /33030ooo.mp4 rtp: //239.255.42.42: 5004> c:/config.sdp' – code7amza

1

Chỉ trong trường hợp bất cứ ai đang tìm kiếm để tìm cách để làm điều này với mã ffmpeg C, bạn có thể sử dụng av_sdp_create-generate an sdp string

0

FFMPG tạo ra một tập tin SDP khi chỉ định với -sdp_file path/to/file

Tài liệu trích đoạn:

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

Các vấn đề liên quan