Rumah >pembangunan bahagian belakang >Golang >Cara mengekstrak bingkai video menggunakan Golang dan FFmpeg

Cara mengekstrak bingkai video menggunakan Golang dan FFmpeg

PHPz
PHPzasal
2023-09-29 16:05:081449semak imbas

Cara mengekstrak bingkai video menggunakan Golang dan FFmpeg

Cara menggunakan Golang dan FFmpeg untuk mengekstrak bingkai video

Abstrak:
Artikel ini memperkenalkan cara menggunakan Golang dan FFmpeg ekstrak Bingkai video, dan contoh kod khusus diberikan. Melalui kaedah ini, setiap bingkai boleh diekstrak dengan mudah daripada video dan seterusnya diproses dan dianalisis.

  1. Pengenalan
    Memandangkan kandungan video terus meningkat, permintaan untuk pemprosesan video juga semakin meningkat. Antaranya, pengekstrakan bingkai video adalah salah satu langkah asas untuk banyak tugasan analisis dan pemprosesan video. Artikel ini akan memperkenalkan cara menggunakan Golang dan FFmpeg untuk mengekstrak bingkai video.
  2. FFmpeg gambaran keseluruhan
    FFmpeg ialah set alat pemprosesan multimedia sumber terbuka yang boleh menukar, mengekod dan menyahkod format audio dan video. Ia adalah salah satu alat yang digunakan untuk banyak tugasan pemprosesan video dan mempunyai komuniti pengguna yang besar serta pangkalan pembangun yang aktif.
  3. Pasang FFmpeg
    Untuk menggunakan FFmpeg, anda perlu memasangnya pada komputer anda terlebih dahulu. Binari yang disusun boleh dimuat turun dari tapak web rasmi (https://www.ffmpeg.org/) atau dipasang melalui pengurus pakej.
  4. Gunakan Golang untuk memanggil FFmpeg
    Di Golang, arahan luaran boleh dilaksanakan melalui pakej os/exec. Kita boleh menggunakan pakej ini untuk memanggil arahan FFmpeg dan mengekstrak bingkai video ke direktori output yang ditentukan.

Berikut ialah contoh kod yang menunjukkan cara menggunakan Golang untuk memanggil arahan FFmpeg untuk mengekstrak bingkai video:

package main

import (
    "log"
    "os"
    "os/exec"
)

func main() {
    inputFile := "input.mp4"   // 输入视频文件
    outputDir := "frames/"     // 输出目录,存放提取出的视频帧

    // 创建输出目录
    err := os.MkdirAll(outputDir, os.ModePerm)
    if err != nil {
        log.Fatal(err)
    }

    // 构造FFmpeg命令
    cmd := exec.Command("ffmpeg", "-i", inputFile, "-vf", "fps=1", outputDir+"frame-%03d.jpg")

    // 执行命令
    err = cmd.Run()
    if err != nil {
        log.Fatal(err)
    }

    log.Println("视频帧提取完成!")
}

Fungsi kod di atas ialah untuk menukar fail video yang ditentukan ( Setiap bingkai dalam input.mp4) diekstrak dan disimpan sebagai fail imej format jpg, disimpan dalam bingkai/ direktori. Antaranya, parameter "-vf fps=1" bermaksud mengekstrak satu bingkai sesaat.

  1. Jalankan kod
    Simpan kod di atas sebagai fail go, dan kemudian jalankan go run filename.go pada baris arahan untuk mula mengekstrak bingkai video. Proses pengekstrakan mungkin mengambil sedikit masa, bergantung pada saiz dan kadar bingkai video.
  2. Ringkasan
    Artikel ini memperkenalkan cara menggunakan Golang dan FFmpeg untuk mengekstrak bingkai video. Dengan memanggil arahan FFmpeg, kami boleh menukar video kepada imej bingkai dengan mudah dan melakukan pemprosesan dan analisis seterusnya. Saya harap artikel ini dapat membantu pembaca yang memerlukan pengekstrakan bingkai video.

Atas ialah kandungan terperinci Cara mengekstrak bingkai video menggunakan Golang dan FFmpeg. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn