当前位置: 首页 > 知识库问答 >
问题:

将原始[]字节视频管道传输到FFMPEG-GO

雍志文
2023-03-14
//Parsing video
videoData, err := ioutil.ReadAll(r.Body)
if err != nil {
    w.WriteHeader(UPLOAD_ERROR)
    w.Write([]byte("Error uploading the file"))
    return
}
        filename := "test.mp4"
        width := 640
        height := 360
        cmd := exec.Command("ffmpeg", "-i", filename, "-vframes", "1", "-s", fmt.Sprintf("%dx%d", width, height), "-f", "singlejpeg", "-")
        var buffer bytes.Buffer
        cmd.Stdout = &buffer
        if cmd.Run() != nil {
            panic("could not generate frame")
        }

(编辑:我现在试图将[]字节数组传输到ffmpeg,但是ffmpeg没有填满我的缓冲区:

width := 640
height := 360
log.Print("Size of the video: ", len(videoData))


cmd := exec.Command("ffmpeg", "-i", "pipe:0", "-vframes", "1", "-s", fmt.Sprintf("%dx%d", width, height), "-f", "singlejpeg", "-")
cmd.Stdin = bytes.NewReader(videoData)

var imageBuffer bytes.Buffer
cmd.Stdout = &imageBuffer
err := cmd.Run()

if err != nil {
    log.Panic("ERROR")
}

imageBytes := imageBuffer.Bytes()
log.Print("Size of the image: ", len(imageBytes))

但我得到以下错误:

[mov,mp4,m4a,3GP,3G2,mj2@0x7FF05D002600]流0,偏移量0x5Ded:部分文件

共有1个答案

赵永逸
2023-03-14

我需要一个视频的单一帧,并转换成一个PNG。这就是有人用FFMPEG做这件事的方式。

有一个流行的go库正是为您搜索的内容而设计的:https://github.com/bakape/thumbnailer

thumbnailDimensions := thumbnailer.Dims{Width: 320, Height: 130}

thumbnailOptions := thumbnailer.Options{JPEGQuality:100, MaxSourceDims:thumbnailer.Dims{}, ThumbDims:thumbnailDimensions, AcceptedMimeTypes: nil}

sourceData, thumbnail, err := thumbnailer.ProcessBuffer(videoData, thumbnailOptions)

imageBytes := thumbnail.Image.Data

他们暗中使用ffmpeg,但为您删除了抽象。

 类似资料:
  • 问题内容: 这是一个使用OpenCV的python绑定读取网络摄像头的简单示例: 现在,我想将输出通过管道传递给ffmpeg,如下所示: 可悲的是,我无法完全正确地实现ffmpeg魔咒,并且失败了 捕获的帧绝对是640x480。 我很确定OpenCV图像类型(IplImage)的像素顺序是GBR,每个通道一个字节。至少,这似乎是从相机上脱落的。 我不是ffmpeg大师。有人成功做到了吗? 问题答案

  • null (它也应该与ffprobe和ffplay一起工作)

  • 在我的网站,有上传视频(只有mp4视频)功能,然后结合。对于合并,我使用了Mp4Box,如果我们想要合并所有的mp4视频,这些视频必须相同的度数、比特率、编解码、采样等,所以在上传mp4视频时,我们设置了常数维度和其他细节,如FFMPEG-I Test.mp4-R 25-S 640x360-AR 48000-Acodec copy-F MP4-Vcodec libx264-Vpre Default

  • 音频和视频都能在第一次正确播放,在音频播放完成时视频循环(因为它更短)。唯一的问题是音频循环不工作,一旦音频第一次完成,流就停止了。 以下是日志: ffmpeg version 4.3.1版权所有(c)2000-2020 ffmpeg开发人员 使用Apple clang version 12.0.0(clang-1200.0.32.27) 配置构建:--prefix=/usr/local/cell

  • 我目前正在使用一个名为s3-upload-stream的Node.js插件,将非常大的文件传输到Amazon S3。它使用multipart API,并且在很大程度上工作得很好。 是否有一种方法可以使aws-sdk成为我可以将流管道传输到的东西?

  • 在用图像创建mp4幻灯片时,我在网上为zoompan提供了一些示例,但我仍然没有完全掌握如何使它们从图像中的某个位置开始。下面是典型的命令: ffmpeg-i image-000。jpg-filter_complex“color=c=black:r=60:s=1920x1080[demo];[0:v]格式=pix_fmts=yuva420p,比例=8000:-1,zoompan=z='min(zo