1. 問題描述
用戶端使用ffmpeg 擷取一個rtsp位址時,出現 連接配接過程完成, 但是收不到流的情況。使用vlc 正常。
抓包對比, 發現如下情況:

伺服器 DESCRIBE 資訊: 伺服器指定 流使用端口9400。
用戶端 SETUP 資訊: 使用的非9400 的 随機端口
伺服器回複如上。
PLAY互動也顯示正常。
但是 , 伺服器發送流使用端口卻是65535
2. 問題修改
修改ffmpeg可以解決這個問題, 讓 ffmpeg使用指定的端口9400:
Rtsp.c -> ff_rtsp_make_setup_request()
3. 通過搜尋試驗發現, ffmpeg 通過指定 傳輸方式也可以解決。
av_dict_set(&in_opts, "rtsp_transport", "tcp", 0);