ฉันจะไพพ์เอาต์พุตของ ffmpeg ไปยัง ffplay ได้อย่างไร
ตอนนี้ฉันใช้วิธีแก้ปัญหาในการทุบตี:
mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam
ฉันจะไพพ์เอาต์พุตของ ffmpeg ไปยัง ffplay ได้อย่างไร
ตอนนี้ฉันใช้วิธีแก้ปัญหาในการทุบตี:
mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam
คำตอบ:
ฉันไม่ทราบว่าเป็นffmpeg
สิ่งที่ไม่สามารถส่งออกข้อมูลไปยัง stdout หรือffplay
ไม่สามารถรับข้อมูลจาก stdin
หากffmpeg
ไม่สามารถส่งออกข้อมูลไปยัง stdout:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(คุณย้ายข้อมูลจำเป็นต้องเพิ่ม-
อาร์กิวเมนต์เข้าไปffplay
เพื่อรับข้อมูลจาก stdin)
หากเป็นffplay
สิ่งที่ไม่สามารถรับอินพุตจาก stdin:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ<(command)
และ>(command)
สร้างดูส่วนการทดแทนกระบวนการของคู่มือทุบตี
ffmpeg -i input.avi <options> -f matroska - | ffplay -
จะทำงาน; คุณต้องตั้งค่ารูปแบบคอนเทนเนอร์สำหรับผลลัพธ์ แห่งนี้ตั้งอยู่ตามปกติ ffmpeg มองไปที่ส่วนขยายที่คุณให้การส่งออก -f
แต่ที่นี่คุณจะต้องตั้งได้ด้วยตนเองด้วย ฉันแนะนำ matroska (MKV) เพราะมันสามารถมีวิดีโอเกือบทุกวิดีโอดังนั้นสิ่งที่คุณแปลงรหัสมันควรจะทำงานได้ดีอย่างสมบูรณ์
โปรดทราบว่าถ้าคุณใช้ Ubuntu 12.04, ffmpeg ถูกแทนที่ด้วย libav fork และคุณควรใช้avconv
และavplay
แทน ไวยากรณ์เป็นอย่างอื่นเหมือนกัน มี ffmpeg เรียงลำดับอยู่ที่นั่น แต่พิการด้วยการออกแบบ
pipe:: Invalid data found when processing inputK
ใน Power Shell แต่ทำงานได้ดีใน command prompt
ffmpeg รองรับการใช้งาน piping ดูในส่วนของเอกสารที่นี่
ฉันไม่ทราบวิธีการทำงานของ ffplay แต่เพื่อไพพ์เอาต์พุตของ ffmpeg ไปยังเอาต์พุตมาตรฐานคุณสามารถเพิ่มคำสั่งไพพ์ไปยังท้ายคำสั่ง ffmpeg ตัวอย่าง:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay
ฉันไม่เห็นffplay
การสนับสนุน-i
สวิตช์ - อาจเป็นffmpeg
เพียงแค่
pipe:1
VS -
? -
ทำงานบน ffmpeg 2.8.6
ดูเหมือนว่าการทำงานปกติของท่อ (อย่างน้อยในหน้าต่าง):
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
ยังไม่ได้ลองกับอินพุต / เอาต์พุตที่ซับซ้อนกว่านี้ ...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
เป็นการเริ่มต้นที่เร็วขึ้นเล็กน้อย
Unable to find a suitable output format for 'pipe:'
- -f
ฉันต้องการที่จะระบุตัวแปลงสัญญาณด้วย