zoukankan      html  css  js  c++  java
  • Linux开发:论ffmpeg的使用

    一.简介

    最近在搞ffmpeg,发现ffmpeg是用linux编译的,对windows用户极为不友好,所以目前还在研究怎么在windows上编译ffmpeg,我记得以前编译ffmpeg挺简单的,现在版本高了之后变复杂了

    ffmpeg version 4.4 built with gcc 10.2.0(Rev6, Built by MSYS2 project)

    configuration: --enable-gpl

            --enable-version3

            --enable-shared

            --disable-w32threads

            --disable-autodetect

            --enable-fontconfig

            --enable-iconv

            --enable-gnutls

            --enable-libxml2

            --enable-gmp

            --enable-lzma

            --enable-libsnappy

            --enable-zlib

                    --enable-librist

            --enable-libsrt

            --enable-libssh

            --enable-libzmq

            --enable-avisynth

            --enable-libbluray

            --enable-libcaca

            --enable-sdl2

            --enable-libdavld

            --enable-libzvbi

            --enable-libravle

            --enable-libsvtavl

            --enable-libwebp

            --enable-libx264

            --enable-libx265

            --enable-libxvid

            --enable-libaom

            --enable-libopenjpeg

            --enable-libvpx

            --enable-libass

            --enable-freiOr

            --enable-libfreetype

            --enable-libfribidi

            --enable-libvidstab

            --enable-libvmaf

            --enable-libzimg

            --enable-amf

            --enable-cuda-llvm

            --enable-cuvid

            --enable-ffnvcodec

            --enable-nvdec

            --enable-nvenc

            --enable-d3dllva

            --enable-dxva2

            --enable-libmfx

            --enable-libglslang

            --enable-vulkan

            --enable-opencl

            --enable-libcdio

            --enable-libgme

            --enable-libmodplug

            --enable-libopenmpt

            --enable-libopencore-amrwb

            --enable-libmp3lame

            --enable-libshine

            --enable-libtheora

            --enable-libtwolame

            --enable-libvo-amrwbenc

            --enable-libilbc

            --enable-libgsm

            --enable-libopencore-amrnb

            --enable-libopus

            --enable-libspeex

            --enable-libvorbis

            --enable-ladspa

               --enable-libbs2b

            --enable-libflite

            --enable-libmysofa

            --enable-librubberband

            --enable-libsoxr

            --enable-chromaprint

    一.libavutil

    二.libavcodec

    三.libavformat

    四.libavdevice

    五.libavfilter

    六.libswscale

     

    七.libswresample

     

    八.libpostproc

    九.被否决的函数

    1.avcodec_encode_video2被否决

    
    
    旧版:

    int
    AnimationMp4VideoGeneration::WriteVideoFrame(AVFormatContext* oc, OutputStream* ost) { int ret; AVCodecContext* c; AVFrame* frame; int got_packet = 0; AVPacket pkt = {0}; c = ost->enc; frame = GetVideoFrame(ost); av_init_packet(&pkt); /* encode the image */ ret = avcodec_encode_video2(c, &pkt, frame, &got_packet); if (ret < 0) { LOG("Error encoding video frame:%s "); exit(1); } if (!got_packet) { ret = WriteFrame(oc, &c->time_base, ost->st, &pkt); } else { ret = 0; } if (ret < 0) { LOG("Error while writing video frame:%s "); exit(1); } return (frame || got_packet) ? 0 : 1; }
    
    
    新版:

    int
    AnimationMp4VideoGeneration::WriteVideoFrame(AVFormatContext* oc, OutputStream* ost) { int ret; AVCodecContext* c; AVFrame* frame; int got_packet = 0; AVPacket pkt = {0}; c = ost->enc; frame = GetVideoFrame(ost); av_init_packet(&pkt); /* encode the image */ ret = avcodec_send_frame(c, frame); if (ret < 0) { LOG("Eroor encoding video frame:%s "); exit(1); } got_packet = avcodec_receive_packet(c, &pkt); if (!got_packet) { ret = WriteFrame(oc, &c->time_base, ost->st, &pkt); } else { ret = 0; } if (ret < 0) { LOG("Error while writing video frame: %s "); exit(1); } return (frame || got_packet) ? 0 : 1; }
  • 相关阅读:
    webpack4配置详解之常用插件分享
    eslint 配置
    获取数组的随机数
    封装一个拖拽
    R语言常用语法和用法
    关于异或操作和它的算法题
    算法题:整形数组找a和b使得a+b=n
    最小生成树的一些证明
    python multiprocessing 使用
    python decorator的本质
  • 原文地址:https://www.cnblogs.com/k5bg/p/11102385.html
Copyright © 2011-2022 走看看