我想在我的服務器上編碼許多視頻,但FFMPEG是資源密集型的,所以我想設置某種形式的排隊。我的網站的其餘部分使用PHP,但我不知道是否應該使用PHP,Python,BASH等。我想我可能需要使用CRON,但我不確定如何告訴ffmpeg啓動新任務(從列表中)完成之後的任務。如何設置ffmpeg隊列?
3
A
回答
7
我們將在bash腳本中使用FIFO(先進先出)。該腳本需要cron
之前運行(或任何腳本,調用該FIFO
任何終端)發送ffmpeg
命令,這個腳本:
#!/bin/bash
pipe=/tmp/ffmpeg
trap "rm -f $pipe" EXIT
# creating the FIFO
[[ -p $pipe ]] || mkfifo $pipe
while true; do
# can't just use "while read line" if we
# want this script to continue running.
read line < $pipe
# now implementing a bit of security,
# feel free to improve it.
# we ensure that the command is a ffmpeg one.
[[ $line =~ ^ffmpeg ]] && bash <<< "$line"
done
現在(在腳本運行時),我們可以發送任何ffmpeg
命令命名管道使用語法:
echo "ffmpeg -version" > /tmp/ffmpeg
和錯誤檢查:
if [[ -p /tmp/ffmpeg ]]; then
echo "ffmpeg -version" > /tmp/ffmpeg
else
echo >&2 "ffmpeg FIFO isn't open :/"
fi
他們將自動排隊。
1
感謝您的支持。應用這種技術來創建一個ffmpeg隊列。 雖然我做了一個小小的改變。出於某種原因,此隊列僅適用於2個項目。第一個項目完成後,我只能發送第三個項目。
我相應的修改腳本:
while true; do
# added tweak to fix hang
exec 3<> $pipe
# can't just use "while read line" if we
# want this script to continue running.
read line < $pipe
我此基礎上: https://stackoverflow.com/questions/15376562/cant-write-to-named-pipe
只是覺得我應該分享這個對於這個任何可能的將來使用。
+0
嗯,這意味着作爲評論StardustOne的出色答案 – Joost
相關問題
- 1. 爲ffmpeg rtsp流播放設置音頻隊列
- 2. Mapreduce隊列設置
- 3. 如何在隊列上設置ActiveMQ redeliveryPolicy?
- 4. 如何正確設置隊列超時?
- 5. 設置NServiceBus隊列中EndpointConfig.cs
- 6. Moq,ref,設置和隊列
- 7. C#FFmpeg的包裝 - 如何設置AVFormatContext
- 8. ffmpeg - 如何設置最大幀速率
- 9. ffmpeg - 如何設置直方圖大小?
- 10. ffmpeg libx264 AVCodecContext設置
- 11. 如何將隊列管理器配置設置爲'可選'?
- 12. 如何爲IBM隊列管理器/隊列通道和隊列中的所有用戶設置權限
- 13. 如何設置隊列生產者超時?
- 14. 如何設置一個pyzmq套接字隊列超時
- 15. 如何爲每個durableTopic設置一個死信隊列?
- 16. 如何在音頻隊列中設置比特率
- 17. 如何在OracleAQ隊列上將max_retries設置爲無限制
- 18. 如何設置循環隊列的大小
- 19. 如何正確設置NServiceBus以使用遠程錯誤隊列?
- 20. 如何在activemq中設置監視隊列
- 21. 如何通過PHP爲Twilio SMS消息設置隊列狀態?
- 22. 如何在javascript中設置定時隊列
- 23. 如何爲Django中的Celery隊列設置特定的代理?
- 24. 如何在ActiveMq中設置默認隊列
- 25. 如何在運行時設置Azure WebJob隊列名稱?
- 26. 如何設置消息隊列的所有者?
- 27. 如何在MSMQ集羣隊列上設置權限?
- 28. 如何在Activemq jms隊列中設置消息ID?
- 29. 如何爲桶設置seq2seq模型的tfrecords隊列?
- 30. 如何設置使用隊列管道在多處理
是的,但我的視頻將被動態添加。所以我不想手動轉換它們。當我的服務器上下載了新視頻時,我希望它將視頻添加到隊列中 –
POST從頭開始重寫以適合您的需求。 –
美麗的我會試試這個當我回家 –