내 서버에서 많은 비디오를 인코딩하려고하지만 FFMPEG는 리소스를 많이 사용하므로 어떤 형태의 큐를 설정하고 싶습니다. 내 사이트의 나머지 부분은 PHP를 사용하고 있지만 PHP, Python, BASH 등을 사용해야할지 모르겠다. CRON을 사용해야 할 수도 있다고 생각했지만 실제로 ffmpeg를 시작하는 방법을 정확히 알지는 못했다. 새 작업 (목록에서)이 끝나고 새 작업을 완료합니다.ffmpeg 대기열을 어떻게 설정합니까?
3
A
답변
7
우리는 bash 스크립트에서 FIFO (First In First Out)을 사용합니다. 스크립트는이 스크립트에 ffmpeg
명령을 보낼 수 (또는 스크립트 FIFO
를 호출 어떤 터미널) cron
하기 전에 실행해야합니다 : 이제
#!/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 큐를 생성하기 위해이 기술을 정확히 적용했습니다. 나는 1 개의 작은 변화를 만들었다. 어떤 이유로이 대기열은 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. 언제, 어떻게 대기열을 사용해야합니까?
- 2. Cheetah 'useAutocalling'을 어떻게 설정합니까?
- 3. MVCLister의 순서는 어떻게 설정합니까?
- 4. 여기에 조건문을 어떻게 설정합니까?
- 5. UIBarButtonItem의 텍스트를 어떻게 설정합니까?
- 6. 시작하는 동안 어떻게 설정합니까?
- 7. Command + 키를 어떻게 설정합니까?
- 8. SVN URL을 어떻게 설정합니까?
- 9. Mongoid에서 references_one을 어떻게 설정합니까?
- 10. cron 작업을 어떻게 설정합니까?
- 11. JTextField의 레이블을 어떻게 설정합니까?
- 12. TDBCtrlGrid에서 PanelHeight를 어떻게 설정합니까?
- 13. make의 기본값을 어떻게 설정합니까?
- 14. Tomcat에서 javax.servlet.context.tempdir을 어떻게 설정합니까?
- 15. Flex에서 단축키는 어떻게 설정합니까?
- 16. oAuth 서버는 어떻게 설정합니까?
- 17. rpy2는 어떻게 설정합니까?
- 18. Jcurses 라이브러리는 어떻게 설정합니까?
- 19. AppDelegate에서 ViewController로 어떻게 설정합니까?
- 20. element.onmouseover를 어떻게 설정합니까?
- 21. 어떻게 _path_를 변수로 설정합니까?
- 22. XAML에서 CommandParameter를 어떻게 설정합니까?
- 23. ABPeoplePickerNavigationController의 프롬프트를 어떻게 설정합니까?
- 24. Python 프로젝트는 어떻게 설정합니까?
- 25. Android : TabHost를 어떻게 설정합니까?
- 26. JLabel의 배경색은 어떻게 설정합니까?
- 27. NSTextField에서 텍스트를 어떻게 설정합니까?
- 28. PHP에서 어떻게 페이징을 설정합니까?
- 29. 중매인은 어떻게 변수를 설정합니까?
- 30. C# beginInvoke를 어떻게 설정합니까?
예, 동영상이 동적으로 추가됩니다. 그래서 나는 그들을 개종시키기를 원하지 않는다. 서버에 새 비디오가 다운로드되면 비디오를 대기열에 추가하려고합니다. –
POST가 필요에 맞게 처음부터 다시 작성됩니다. –
아름다운 나는 집에 갈 때 이것을 시도 할 것이다 –