我在建築物中設置了3個攝像頭,將靜止圖像上傳到網絡服務器。我使用ffmpeg將jpgs編碼爲mp4視頻。Bash:使用部分文件名排序查找結果
的目錄都設置這樣的:
Cam1/201504
Cam1/201505
Cam2/201504
Cam2/201505
Cam3/201504
Cam3/201505
我使用以下的bash循環/ ffmpeg的參數,使每一個攝像頭視頻,每年。這種運作良好,到目前爲止,(嗯......除了我的SSD在性能迅速降低 - 太多的同步讀/寫操作):
find Cam2/2013* -name "*.jpg" -print0 | xargs -0 cat | ffmpeg -f image2pipe -framerate 30 -vcodec mjpeg -i - -vcodec libx264 -profile:v baseline -level 3.0 -movflags +faststart -crf 19 -pix_fmt yuv420p -r 30 "Cam2-2013-30fps-19crf.mp4"
的各個文件被命名爲這樣的(混淆FFmpeg的內置文件序):
Cam1_2015052413543201.jpg
Cam1_2015052413544601.jpg
Cam2_2015052413032601.jpg
Cam2_2015052413544901.jpg
我現在需要在所有3臺攝像機,通過時間戳下令創建一個視頻整整一年。爲了做到這一點,我需要在下劃線後按文件名的段來排列查找結果。
我該如何管理查找輸出來完成此操作?例如,上面的文件將這樣排序:
Cam2_2015052413032601.jpg
Cam1_2015052413543201.jpg
Cam1_2015052413544601.jpg
Cam2_2015052413544901.jpg
任何幫助非常感謝!
這適用於較短的名單,但我使用xargs的,因爲我碰到「/bin/cat:參數列表太長「,而且列表很大。我如何將它與xargs寫成的命令結合起來? – utt50
'find blah blah |排序等等等等xargs等等等等。那有什麼問題?順便說一下,其他答案比我的好。 – 4ae1e1
,因爲這不適用於此類。我想我不明白xargs。這是我的命令:'find */201111/* 20111130 * -name「* .jpg」-print0 | sort -t'_'-nk2 | xargs -0 cat | ffmpeg -f image2pipe -framerate 30 -vcodec mjpeg -i -vcodec libx264 -profile:v baseline -level 3.0 -movflags + faststart -crf 19 -pix_fmt yuv420p -r 30「output.mp4」' – utt50