2014-10-17 82 views
3

我想使用ffmpeg直播流攝像頭。我的Logitech c920網絡攝像頭具有原始和壓縮數據的輸出流。該命令ffmpeg -f v4l2 -list_formats all -i /dev/video1生成以下控制檯輸出:如何使用ffmpeg訪問攝像頭的壓縮流

[video4linux2,v4l2 @ 0x26709e0] Raw  : yuyv422 :  YUV 4:2:2 (YUYV) : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240 640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896 1920x1080 2304x1296 2304x1536 
[video4linux2,v4l2 @ 0x26709e0] Compressed:  h264 :    H.264 : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240 640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896 1920x1080 
[video4linux2,v4l2 @ 0x26709e0] Compressed:  mjpeg :    MJPEG : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240 640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896 1920x1080 

我想副本 H264壓縮圖像,並將其發送到ffserver的。

當我使用此命令時ffmpeg -r 25 -f v4l2 -i /dev/video0 -c:v libx264 -b:v 2500k http://localhost:8090/feed1.ffm程序獲取原始數據並使用h264編解碼器對其進行轉碼。

當我將-c:v libx264更改爲-c:v copy時出現錯誤,因爲ffmpeg嘗試複製原始相機圖像。

如何訪問h264壓縮映像並將其發送到服務器?

+0

我想知道我能問嗎?你是如何發佈捕獲的視頻,我的意思是輸出到服務器假設我有一臺USB攝像頭連接到我的電腦,我想要去live.so我需要發佈視頻到服務器,然後直播給用戶如何設法做到這一點,請幫助? – 2017-01-01 09:56:01

+1

我不需要上傳流。我需要在同一個wifi中的功能,因此執行命令中的'localhost'。我用[這個答案]中描述的方法(http://stackoverflow.com/questions/26999595/what-steps-are-needed-to-stream-rtsp-from-ffmpeg/27007456#2700745)。請注意,ffserver將在下一個版本中刪除。我建議你閱讀[ffmpeg流媒體指南](https://trac.ffmpeg.org/wiki/StreamingGuide) – grzebyk 2017-01-02 12:56:55

回答

2

FFmpeg有一個input_formatoption來指定輸入設備的格式。嘗試將-input_format h264作爲輸入選項添加到您的命令中。