
Я пытаюсь извлечь миниатюру изображения из входного потока с помощью FFmpeg и отправить результат в stdout. Я использовал эту команду: ffmpeg -i - -ss 00:00:01.000 -vframes 1 -c:v png -f image2pipe -
. Это отлично работает, когда входной поток имеет контейнер MP4, но не для MOV. Я получаю ошибку «неуказанный формат пикселей».
После перемещения атома moov в начало файла с помощью этой команды: ffmpeg -i - -c copy -movflags faststart out.mov
, а затем передачи файла предыдущей команде, все работает как и ожидалось. Однако я хотел бы сделать это без записи нового файла на диск. Команда ffmpeg -i - -c copy -movflags faststart -f mov -
не может инициализировать выходной поток, поскольку muxer не поддерживает не-seekable вывод.
Есть ли способ сделать это без записи файла, возможно, с помощью буфера? Я совсем новичок в FFmpeg, поэтому я мог что-то упустить в своем подходе. Обратите внимание, что я также пробовал фрагментированный вывод: ffmpeg -i - -c copy -movflags frag_keyframe+empty_moov -f mov -
но при этом получаю ту же ошибку "неуказанный формат пикселя".