Ответы:
Я не знаю, может ли он ffmpeg
не выводить свои данные в stdout, или ffplay
что он не может получить свой ввод из stdin.
Если это так ffmpeg
, он не может вывести свои данные на стандартный вывод:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(Вам необходимо добавить -
аргумент, ffplay
чтобы он получал данные от stdin.)
Если это ffplay
то, что не может получить свой ввод от стандартного ввода:
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 вилкой, и вы должны использовать 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
.