Я пытаюсь декодировать изображение bmp, используя библиотеки image и golang.org/x/image/bmp.Изображение выводится ffmpeg в стандартный вывод.Это код для получения кадра:
cmd := exec.Command("ffmpeg", "-accurate_seek", "-ss", strconv.Itoa(index), "-i",
filename, "-frames:v", "1", "-hide_banner", "-loglevel", "0", "pipe:.bmp")
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
o := bufio.NewReader(&out)
, а затем я декодирую его, используя img, _, err := image.Decode(o)
Однако это выдает ошибку «image: unknown format».Я уже зарегистрировал формат bmp в основном методе, и ранее я успешно декодировал фактические BMP-файлы с диска, но не из stdout.
Я пытался использовать bmp.Decode вместо image.Decode, но этопросто выдает ошибку "EOF".
Я подумал, может быть, я не получаю стандартный вывод правильно, но если я просто записать его прямо в файл:
o := bufio.NewReader(&out)
outputfile, err := os.Create("test.bmp")
if err != nil {
log.Fatal(err)
}
defer outputfile.Close()
io.Copy(outputfile, o)
, то этоотлично работает, и я могу открыть его.
Редактировать: код