2014-11-23 48 views

回答

2

如果您使用的ffmpeg,你可以使用類似下面的內容:

ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -vcodec libx264 -f h264 test.264 

你必須爲你從導出視頻文件類型在命令行適應。 這生成一個包含H.264訪問單元的文件,其中每個訪問單元由一個或多個NAL單元組成,每個NAL單元前綴有一個起始代碼(0001或001)。您可以使用十六進制編輯器打開文件來查看它。

您還可以使用原始YUV輸入文件中的H.264 reference encoder創建H.264基本流文件(.264)。

如果您將生成的.264文件複製到live555 testOnDemandRTSPServer目錄中,您可以測試通過RTSP/RTP流式傳輸文件。

你可以給一些參考資料閱讀更多關於NAL/H.264基本流。我如何快速檢查流是否是基本流?

一般來說,容器中的任何東西(avi或mp4)都不是基本流。用於基本流的典型擴展是「.264」。仔細檢查文件是否爲基本流的最快方法是在十六進制編輯器中打開該文件,並在文件的開頭(00000001)查找開始代碼。需要注意的是應該有3(000001)和4(00000001)字節通過啓動碼出來的文件(每個NAL單元前)

爲什麼LIVE555不玩不屬於基本H264流?

這純粹是因爲live555沒有實現所需的demux(例如avi或mp4)。 AFAIK live555確實支持從matroska容器中解複用H.264。

+0

我在Windows上,下載了live555二進制文件。如你所述,用ffmpeg轉換文件後,我仍然無法連接。我可以播放MP3文件,所以連接就在那裏。 – user1767754 2014-11-23 21:24:54

+0

「您無法連接」是指您收到RTSP錯誤代碼,例如404或者您無法連接到RTSP服務器,即套接字問題?需要檢查的事項:您是否將.264放在與testOnDemandRTSPServer相同的目錄中?它是否被命名爲「test.264」,並且您是否嘗試使用「rtsp://x.x.x.x:8554/h264ESVideoTest」URI訪問它?請注意,該應用程序使用的默認端口是8554而不是554.此外,您可以檢查.264文件的有效性。 – Ralf 2014-11-23 21:56:12

+0

我從Windows「Live555MediaServer.exe」開始,然後它說「使用URL從此服務器播放流」rtsp://192.168.0.10:8554/。在我的情況下,它是''rtsp://192.168.0.10:8554/test.h264''我沒有「testOnDemandRTSPServer」我有預編譯的exe文件。我正在使用VLC讀取流,正如我所說,我可以打開沒有任何問題的MP3文件 – user1767754 2014-11-23 22:04:26