Відповіді:
Я не знаю, чи він не 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)
конструкцію дивіться розділ « Заміна процесів» у посібнику з bash.
ffmpeg -i input.avi <options> -f matroska - | ffplay -
буду працювати; вам потрібно встановити формат контейнера для виводу. Зазвичай це встановлюється, якщо ffmpeg дивиться на розширення, яке ви даєте вихід, але тут ви повинні встановити його вручну -f
. Я рекомендую matroska (MKV), оскільки він може містити практично будь-яке відео, тому все, що ви перекодуєте, повинно працювати ідеально.
Зауважте, що якщо ви використовуєте Ubuntu 12.04, ffmpeg був замінений виделкою libav, і ви повинні використовувати avconv
і avplay
замість цього; синтаксис інакше ідентичний. Там є своєрідний ffmpeg, але він покалічений дизайн.
pipe:: Invalid data found when processing inputK
у Power Shell, але добре працює в командному рядку
ffmpeg підтримує трубопровідні операції. Дивіться цей розділ документації тут .
Я не знаю, як працює ffplay, але щоб передати вихід ffmpeg до стандартного виводу, ви можете додати команду pipe до кінця команди ffmpeg. Приклад:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay
, я не бачу ffplay
підтримки -i
комутатора - це може бути ffmpeg
тільки?
pipe:1
проти -
? -
працює на 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
.