Tôi có một tập lệnh bash đang sử dụng các đường dẫn ẩn danh để đạt được:
- lấy video từ thiết bị quay dv
- ghi vào một tập tin (sử dụng tee)
- chuyển nó sang ffmpeg2theora (chuyển đổi sang video ogv / theora)
- ghi vào một tập tin (sử dụng tee)
- dẫn nó đến oggfwd để gửi nó đến máy chủ phát trực tuyến icecast
Làm thế nào tôi có thể đạt được điều đó bằng cách sử dụng các đường ống có tên (fifos), để tôi có thể có các quy trình riêng biệt mà tôi có thể kiểm soát riêng?
Tôi đã sử dụng tập lệnh này:
#!/bin/bash
while (true);
do
dvgrab --format dv1 - | \
tee /filename_`date +%y%m%d_%H%M%S`.dv | \
ffmpeg2theora.linux -f dv -x 382 -y 288 -v 3 --speedlevel 2 --no-skeleton -o /dev/stdout - | \
tee /filename_`date +%y%m%d_%H%M%S`_stream_382x288.ogv | \
oggfwd icecastserver.com 8000 password /mountpoint.ogv
done
Một trong những lý do tôi hỏi điều này là tôi cần phải có các tệp dv và tệp ogv sạch trên đĩa bất kể mạng có hoạt động hay không và máy chủ phát trực tuyến icecast có thể truy cập được.