2

Я пытаюсь сделать из списка изображений видео, а затем я его напрямую загрузлю. До сих пор мне удалось создать видео для изображений с:

cat *.jpg | ffmpeg -r 1 -f image2pipe -vcodec mjpeg -i - foo.mp4

Это работает хорошо, и я доволен этим. Тем не менее, теперь я хотел бы передать результаты, и мне не удается это сделать. Я пробовал пару как:

cat *.jpg | ffmpeg -f image2pipe -r 1/5 -vcodec mjpeg -i - pipe:1 | cat > p.mpeg

(на данный момент я просто хотел бы вернуться обратно в файл просто для проверки, а затем у меня была прямая загрузка).

Я читал в другой ветке, что я должен указать выходной формат, который имеет смысл, так как ошибка, возвращаемая ffmpeg:«Невозможно найти подходящий выходной формат для« pipe:1 »». Тем не менее, все, что я могу найти в документе:

-f fmt (input/output)
Force input or output file format. The format is normally auto detected 
for input files and guessed from the file extension for output files, 
so this option is not needed in most cases.

Как я могу указать формат вывода и формат ввода?

2 ответа2

3

Вам нужно явно установить какой-либо выходной формат. Какой из них на самом деле не имеет значения, но после -i вам нужно:

  • -c:v copy чтобы просто скопировать поток JPEG
  • -f something
  • - в качестве выходной трубы

Из моего опыта matroska отлично работает в качестве выходного формата.

cat *.jpg | ffmpeg -f image2pipe -r 1/5 -c:v mjpeg -i - -c:v copy -f matroska - | ffplay -

Я только что проверил это, и он работает без проблем. Файл воспроизводится также в VLC, когда вы делаете | cat > out.mkv вместо вызова ffplay .

0

Я не могу заставить ваш пример работать в данный момент, поэтому я не проверял это. Но держу пари, что вы можете установить формат вывода, поставив -f после "-i -". (то есть -f с состоянием и устанавливает формат для следующего ввода / вывода.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .