Câu trả lời:
Tôi không biết nếu nó ffmpeg
không thể xuất dữ liệu của nó thành thiết bị xuất chuẩn, hoặc ffplay
không thể lấy đầu vào từ stdin.
Nếu ffmpeg
không thể xuất dữ liệu của nó ra thiết bị xuất chuẩn:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(Bạn di chuyển cần thêm một -
đối số để ffplay
nó lấy đầu vào từ stdin.)
Nếu ffplay
không thể lấy đầu vào từ stdin:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
Để biết thêm thông tin về <(command)
và >(command)
xây dựng, hãy xem phần Thay thế quy trình trong hướng dẫn sử dụng bash.
ffmpeg -i input.avi <options> -f matroska - | ffplay -
sẽ làm việc; bạn cần đặt định dạng chứa cho đầu ra. Điều này thường được đặt với ffmpeg nhìn vào phần mở rộng bạn cung cấp đầu ra, nhưng ở đây bạn phải đặt bằng tay -f
. Tôi khuyên dùng matroska (MKV) vì nó có thể chứa hầu hết mọi video, vì vậy bất cứ điều gì bạn đang chuyển mã đều phải hoạt động hoàn hảo.
Lưu ý rằng nếu bạn đang sử dụng Ubuntu 12.04, ffmpeg đã được thay thế bằng ngã ba libav và bạn nên sử dụng avconv
và avplay
thay vào đó; cú pháp là giống hệt nhau. Có một loại ffmpeg ở đó, nhưng nó bị tê liệt bởi thiết kế.
pipe:: Invalid data found when processing inputK
trong Power Shell, nhưng hoạt động tốt trong dấu nhắc lệnh
ffmpeg hỗ trợ các hoạt động đường ống. Xem phần đó của tài liệu ở đây .
Tôi không biết ffplay hoạt động như thế nào, nhưng để chuyển đầu ra của ffmpeg thành đầu ra tiêu chuẩn, bạn có thể thêm lệnh pipe vào cuối lệnh ffmpeg. Thí dụ:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay
, tôi không thể thấy ffplay
hỗ trợ -i
chuyển đổi - có lẽ ffmpeg
chỉ có vậy không?
pipe:1
vs -
? -
hoạt động trên ffmpeg 2.8.6.
trông giống như các đường ống bình thường hoạt động (ít nhất là trong các cửa sổ):
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
chưa thử nó với đầu vào / đầu ra phức tạp hơn mặc dù ...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
khởi động nhanh hơn một chút
Unable to find a suitable output format for 'pipe:'
- tôi cần chỉ định một codec với -f
.