我想使用ffmpeg將視頻數據包轉換爲mjpeg,理想情況下,我想通過管道傳輸包並通過管道接收輸出。在FFMPEG上使用管道進行輸入和輸出?
我使用C#進程調用的ffmpeg這樣的:
-f H264 -i管:-an -f MJPEG -q:V 1管:在源數據中
我管流使用進程.StandardInput.BaseStream並從.StandardOutput.BaseStream獲取返回的數據。
問題是,FFmpeg不發送數據。它坐着,顯然在等待。沒有錯誤。沒有任何內容寫入StandardOutput。
如果我自己嘗試每個管道,它工作正常。這些工作:
一)通過在一個源文件位置和獲取經由管返回的幀數據(字節寫入StandardOutput)
b)中通過管並要求ffmpeg的保存結果向文件通過在源字節
這不起作用:
C)管道系統中的數據,並獲取數據了通過管道。
從以前對@nmaier給這個問題的回答(Can I use ffmpeg to output jpegs to a memory stream instead of a file)我認爲管道輸入/管道輸出應該起作用。但事實並非如此。
我在做什麼錯?
謝謝。
謝謝你。當我嘗試將讀取和寫入操作放在不同的線程中時,以及何時刪除了所有等待時,我得到了部分文件的部分工作。我發現ffmpeg坐了一會兒,然後進入行動。 – Sugrue 2015-03-03 10:20:06