Ответы:
Я не знаю, может ли он 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.