0
我試圖讓ffmpegs輸出到一個命名管道,在那裏我可以從另一個shell讀取。我不需要傳輸視頻流,只需要下面的信息即可獲得轉換過程的狀態。我不能夠實現任何方式的管道的行爲,但我可以用下面的命令將數據寫入一個文件:管道ffmpeg輸出到命名管道
ffmpeg -i vid.mov -vcodec h264 -acodec aac -strict -2 -y vid.mp4 > fflog.txt 2>&1
這導致以下輸出fflog.txt
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
frame= 50 fps=0.0 q=0.0 size= 0kB time=00:00:03.20 bitrate= 0.1kbits/s
frame= 73 fps= 70 q=28.0 size= 230kB time=00:00:04.05 bitrate= 465.4kbits/s
frame= 100 fps= 65 q=28.0 size= 462kB time=00:00:05.44 bitrate= 695.3kbits/s
之後我可以通過
tail -f -1 fflog.txt
超出文件。但是我認爲,這些界限並沒有被正確地轉義。 VI顯示我下面的:
frame= 50 fps=0.0 q=0.0 size= 0kB time=00:00:03.20 bitrate= 0.1kbits/s
^Mframe= 73 fps= 70 q=28.0 size= 230kB time=00:00:04.05 bitrate= 465.4kbits/s
^Mframe= 100 fps= 65 q=28.0 size= 462kB time=00:00:05.44 bitrate= 695.3kbits/s
^Mframe= 125 fps= 61 q=28.0 size= 608kB time=00:00:06.48 bitrate= 767.5kbits/s
所以問題是:
- 如何將CRLF轉換爲UNIX像LF通過尾-n返回正確的數據?
- 甚至更好:如何正確管道ffmpeg結果到一個mkfifo命名管道?
- 還是最普遍的:有沒有一種更聰明的方式來實現我的目標?
dos2unix的文件? – rogerdpack