精华内容
下载资源
问答
  • ffmpeg视频转换

    2016-11-04 17:19:08
    用Dos和ffmpeg进行视频编码转换
  • 工作中使用到了遍稍微记录一下--用dos和ffmpeg进行视频编码转换

    dos脚本:

    @echo off
    echo mp4转化工具
    echo 先把文件拷到本目录下,然后输入要转化的文件名(包含文件后缀名)后按回车
    set /p fileName=文件名:
    ffmpeg.exe -i %fileName% -y -qscale 1 -s 800*600 %fileName:~0,-4%_tmp.mp4
    faststart.exe %fileName:~0,-4%_tmp.mp4 %fileName:~0,-4%_ok.mp4
    del %fileName:~0,-4%_tmp.mp4
    echo 转化后文件为:%fileName:~0,-4%_ok.mp4
    pause 

    也可在dos中运行一下命令:

    D:\ffmpeg.exe -i D:\1.avi -y -ab 32 -vcodec libx264 -ar 22050 -qscale 1 -s 800*600 -r 15 D:\1.flv
    注:
    -ac 32
        目标视频文件的音频channel数是32
    -ar 22050
        目标视频文件的音频采样22050
    -vcodec libx264
        目标视频文件的视频编码是libx264--(H.264)

    相关资源下载地址:http://download.csdn.net/detail/zs40122/9673283

    展开全文
  • 遇到一篇好文章,讲解了swscale库的使用详情。...为了将YUV420编码转化成RGB444编码,并且可以保持很高的计算速度。我最终盯上了FFMPEG这个开源库。FFMPEG有很多功能,我为了解决上面提到的那个问题,只使用了sws

    遇到一篇好文章,讲解了swscale库的使用详情。转载只是为了自己容易找到原文的位置,请各位同学到原文地址查看,谢谢。

    转自:http://blackhuman.blogcn.com/archives/176


    为了将YUV420编码转化成RGB444编码,并且可以保持很高的计算速度。我最终盯上了FFMPEG这个开源库。FFMPEG有很多功能,我为了解决上面提到的那个问题,只使用了sws_scale这一个函数。下面首先说一下这个函数的用法,然后在说下如何自己从源代码编译FFMPEG。


    sws_scale函数的作用是图像缩放和图像空间编码转换,它包含在头文件<libswscale/swscale.h>中,由于是c函数,所以在c++编译器中调用时,需要使用extern "C" 来声明这个头文件,如下。
    extern "C" {
    #include <libswscale/swscale.h>
    }
    #pragma comment(lib,"swscale.lib")

    sws_scale函数原型如下(下方图)。其中*context是一个指向SwsContext结构的指针,这个结构由sws_getContext函数生成,下面会提到。srcSlice应该指向源数据,我这里是指向一块YUV420编码数组的开头的。srcStride表示的是每个平面矩阵的行宽,比如YUV420编码分三个平面,Y平面、U平面和V平面。Y平面是一个W*H的矩阵(W是图像宽,H是图像高),所以Y平面行宽为W,即strStride[0]=W;U平面和V平面分别是一个(W/2)*(H/2)的矩阵(这是YUV420编码决定的),所以U和V平面的行宽为W/2,那么strStride[1]=W/2,strStride[2]=H/2;由于在YUV420下,第四个平面没有任何数据,所以strStride[3]=0。srcSliceY为0即可。srcSliceH为图像高度H。dst是一个指向目标数组的指针,这个数组将会存放转换后的RGB444数据,这个数据块需要事先分配好。dstStride表示目的数据格式中每个平面矩阵的行宽,由于RGB444需要交错通道排列,所以只需要一个平面,这样,这个平面的行宽就位W*3,即dstStride[0]=W*3,dstStride[1]=0,dstStride[2]=0,dstStride[3]=0。上面所有的数组都需要事先分配空间。下图为我的调用方法。
    sws_scale函数原型
    int sws_scale(
    struct SwsContext *context,
    const uint8_t* const srcSlice[],
    const int srcStride[],
    int srcSliceY,
    int srcSliceH,
    uint8_t* const dst[],
    const int dstStride[]
    );
    我的调用方法
    sws_scale(
    img_convert_ctx,
    Decdata,
    srcStride,
    0,
    IMG_HEIGHT,
    Encdata,
    dstStride
    );

    下面说说那个swsContext结构体,这个结构体可由sws_getContext函数生成。sws_getContext函数原型如下(下图)。srcW为源数据图像宽,srcH为源数据图像高。srcFormat表示源数据图像格式,其中用PIX_FMT_YUV420P表示YUV420格式,还有其他表示方法,大家可以在FFMPEG对应头文件的声明中找到他们。dstW为目的数据图像宽,dstH为目的数据图像高。dstFormat表示目的数据图像格式,我需要RGB,所以用PIX_FMT_RGB24赋值。flags为SWS_BICUBIC即可,srcFilter,dstFilter,param为NULL即可。下图为我的调用方法。
    sws_getContext函数原型
    struct SwsContext *sws_getContext(
    int srcW,
    int srcH,
    enum PixelFormat srcFormat,
    int dstW,
    int dstH,
    enum PixelFormat dstFormat,
    int flags,
    SwsFilter *srcFilter,
    SwsFilter *dstFilter,
    const double *param
    );
    我的调用方法
    SwsContext* img_convert_ctx = sws_getContext(
    IMG_WIDTH,
    IMG_HEIGHT,
    PIX_FMT_YUV420P,
    IMG_WIDTH,
    IMG_HEIGHT,
    (PixelFormat)PIX_FMT_RGB24,
    SWS_BICUBIC,
    NULL,
    NULL,
    NULL
    );

    这样,我就从Encdata中得到了RGB交错通道图像,这样,这个图像就可以放入OpenCV的IplImage结构中处理了。

    下面再谈谈FFMPEG的编译。从FFMPEG项目主页(http://www.ffmpeg.org/releases/ffmpeg-0.6.3.tar.bz2)获得FFMPEG源码,并使用MinGW来进行编译。这里有必要说一下MinGW,我们可以把MinGW看成是一个编译环境,里面包含了一个叫做MSys的模拟器,MSys可以在windows中进行linux的类shell操作(像Cygwin)。反正目前编译FFMPEG只有这一种方法,照着做就行了。MinGW从其代码托管空间下载,但是一般下载的都是一个小文件,打开安装后会自动下载剩余部分。

    经过漫长的等待后MinGW下载并安装好了,就可以使用了。运行.\MinGW32\MSYS\1.0\msys.bat进入控制台,在控制台中进入你FFMPEG源代码安装路径。接着就是标准的编译过程了。
    $ ./configure --enable-memalign-hack --enable-static --enable-shared --enable-avfilter-lavf
    $make
    $make install


    然后又是漫长的等待,成功之后,各种文件就会出现在.\MinGW\msys\1.0\local中了。

    附上一些参考网站:

    ffmpeg编译教程

    http://www.cnblogs.com/Jerry-Chou/archive/2011/03/29/1998564.html

    http://zhaostudy2.blog.163.com/blog/static/13535020520110179271153/

    ffmpeg编译好的版本直接下载

    http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5

    YUV到RGB的转换方法

    http://www.rosoo.net/a/201006/9661.html
    展开全文
  • ffmpeg视频转换工具

    2021-08-05 17:38:23
    ffmpeg 可以转换视频格式,提取音频文件等功能.windos下载链接https://www.gyan.dev/ffmpeg/builds/ ...视频格式转换(不带编码转换) ffmpeg -i input.avi output.mp4 ffmpeg -i input.mp4 output.ts ffmpeg -i

    ffmpeg 可以转换视频格式,提取音频文件等功能.windos下载链接https://www.gyan.dev/ffmpeg/builds/
    安装方式:
    直接解压,然后在环境变量里的用户变量的PAth中添加解压后文件的Bin文件夹路径.然后打开命令行,输入"ffmpeg -version"(注意空格),有版本信息则安装成功.
    常用命令
    视频格式转换(不带编码转换)

    ffmpeg -i input.avi output.mp4
    ffmpeg -i input.mp4 output.ts

    ffmpeg -i [input.file] -c:v libx264 output.mp4 (带编码转换)

    提取音频
    ffmpeg -i 222.mp4 -acodec aac -vn output.aac

    提取视频
    ffmpeg -i input.mp4 -vcodec copy -an output.mp4

    展开全文
  • 因此,需要对非H264编码格式进行转换。 1.系统环境:win10,python 3.6 2.所用库 pymediainfo,ffmpeg.exe 关键实现步骤 1 使用mediainfo获取视频编码格式,当然也可以使用ffmpeg来获取。 mi = MediaInf

    前言
    用户上传MP4格式的视频之后,前端由vue-video-play插件实现的播放功能却不能播放。经过研究,MP4格式的视频具有H264、MPEG4、H264、VP6(已淘汰)四个编码格式。发现h5不支持其他编码格式,支持H264格式的编码。因此,需要对非H264编码格式进行转换。
    1.系统环境:win10,python 3.6
    2.所用库 pymediainfo,ffmpeg.exe

    关键实现步骤
    1 使用mediainfo获取视频编码格式,当然也可以使用ffmpeg来获取。

    mi = MediaInfo.parse(file)
    myFormat = mi.to_data()['tracks'][1]['format']
    

    2 使用ffmpeg转码
    -vcodec h264 :转码为h264,-threads 5 -preset ultrafast:转码运行较慢,开启多线程。

    cmd = "ffmpeg.exe"+ " -i " + "input.mp4" + " -vcodec h264 -threads 5 -preset ultrafast " + "output.mp4"
    os.system(cmd)
    

    实现代码
    以下代码具有专用性特殊性,请根据需求自行修改。

    import os
    import time
    from pymediainfo import MediaInfo
    import logging
    
    # ffmpeg.exe path 需要写绝对路径,或者把ffmpeg.exe文件放到同级py文件
    fftool = "ffmpeg.exe"
    
    def dealVideo(srcPath):
        file  = srcPath
        # 判断文件夹是否存在
        if os.path.exists(file):
            pass
        else:
            # 文件不存在退出
            logging.warning("file not exit:",file)
            return
        if file.endswith(".mp4") or file.endswith(".MP4"):
            try:
                p, f = os.path.split(file)
                newP = os.path.join(p, videoId + f)
                # 使用mediainfo工具获取视频编码格式
                mi = MediaInfo.parse(file)
                myFormat = mi.to_data()['tracks'][1]['format']
    
                if myFormat != "AVC":
                    logging.info(file, myFormat)
                    # 处理视频cmd命令
                    cmd = fftool + " -i " + file + " -vcodec h264 -threads 5 -preset ultrafast " + newP
                    cmd = cmd.replace("\\","/")
                    os.system(cmd)
                else:
                    print("not deal",myFormat)
            except IOError:
                logging.error("处理失败:",file)
    
    if __name__ == '__main__':
        global addVideoList
        global videoId
        videoId = "temporary-h264-"
        addVideoList = []
    
        # star 用于记录当前处理到第几个视频文件
        star = 0
        while True:
            # 打开保存有视频路径的txt
            with open("video.txt", mode="r") as f:
                count = 0
                for line in f.readlines():
                    line = line.strip('\n')
                    if count == star:
                        dealVideo(line)
                        # 处理了一个视频,指针加一
                        star+=1
                    count += 1
    

    参考文章
    https://www.cnblogs.com/Neeo/articles/11677715.html
    https://blog.csdn.net/COCO56/article/details/108231726
    ffmpeg官方下载地址

    展开全文
  • FFMPEG 编码YUYV 数据

    千次阅读 2018-04-24 11:10:06
    看了雷神的博客《最简单的基于FFMPEG的视频编码器(YUV编码为H.264)》,它介绍的是使用FFMPEG将YUV420 数据编码成H.264数据。在它的博客中,没有介绍到YUYV数据格式的编码,但是我们在实际应用中,有时候摄像头只能...
  • ffmpeg MP3 转换 pcm

    2017-02-10 09:38:26
    学习使用ffmpeg将MP3文件格式转换至PCM文件格式; vs2013编译测试通过; 主要参考雷神的博客和源码;
  • FFMPEG编码时间戳

    千次阅读 2013-12-09 12:48:51
    FFMPEG编码时间戳 昨天打起精神对FFMPEG的编码做了一些小实验,得出如下一些要点。  avcodec_encode_video2以及avcodec_encode_audio2对原始数据Frame进行有效编码,同时会自动根据输入Frame的PTS,在输出...
  • ffmpeg常用转换

    2018-12-03 17:14:16
    转换320kbps mp3: ffmpeg -i inputfile.wav -ab 320k outputfile.mp3 获取视频里的原始音频,不重新编码ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac -vn 无视频画面(no video) -acodec ...
  • ffmpeg编码成mpeg4或h264文件

    热门讨论 2012-05-28 15:12:05
    ffmpeg编码成mpeg4或h264文件
  • 因此想到ffmpeg将视频格式进行转换。 (1)ffmpeg下载地址: https://ffmpeg.zeranoe.com/builds/ (2)下载之后配置下环境变量 (3)咱们先检查下视频格式信息 ffmpeg -i video.mp4 PS C:\Users\Administra
  • 音视频编码转换-ffmpeg

    2016-12-30 18:42:38
    由于最近在做ios与android端需要做amr至mp3的转换,在网上搜了下资料,基本都是用ffmpeg做音视频类转换 [b]2.ffmpeg下载安装[/b] 2.1、下载ffmpeg。 下载网址:[url]http://www.ffmpeg.org/download.html[/url...
  • ffmpeg编码aac

    千次阅读 2014-12-10 18:19:12
    FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,它提供了录制、转换以及流化音视频的完整解决方案。项目的名称来自MPEG视频编码标准,前面的"FF“代表"FastForward“。
  • ffmpeg转换h265编码视频到h264编码

    千次阅读 2021-03-17 15:54:34
    ffmpeg -i inputfile -map 0 -c:a copy -c:s copy -c:v libx264 output.mkv
  • 跟X264不一样,ffmpeg编码器的资料五花八门,就一个编码的编译和环境配置过程,就让我头疼了好一段时间,为了让后面的享用ffmpeg的人不会像我这样晕,在完成任务的第六个晚上,我总结了一下我的ffmpeg编码器使用过程...
  • ubuntu下 ffmpeg视频编码转换命令

    千次阅读 2017-05-28 22:16:44
    ffmpeg -i Forrest_Gump_IMAX.mp4 hugefile.yuv    ffmpeg -s 640x352 -i hugefile640\ x\ 352.yuv out.avi
  • ffmpeg编码示例

    千次阅读 2012-05-25 11:20:41
    //转换编码参数设置不正确 goto lk_error; } strcpy(pOutFormatContext->title, pInputFormatContext->title); strcpy(pOutFormatContext->author, pInputFormatContext->author); strcpy...
  • ffmpeg常用转换命令,支持WAV转AMR

    千次阅读 2018-01-01 15:36:17
    音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenhuxi.amr amr2wav.wav 3.转换mp3到wav: ffmpeg -i DING.mp3 -f wav ...
  • ffmpeg的封装转换   ffmpeg的封装转换(转封装)功能包含在AVFormat模块中,通过libavformat库进行MUX和Demux操作多媒体文件的格式有很多种,这些格式中的很多参数在MUx与Demux的操作参数中是公用的,下面...
  • ffmpeg AV转换常用命令

    2015-11-03 18:42:04
    帖子比较长,建议Ctrl+D bookmark一下,或者提交到别的什么Social bookmark sites,不想看mencoder/ffmpeg详细技术手册的,可以把它当快速简易参考看,主要的功能有: 视频格式转换 音频格式转换 切割视频及音频 ...
  • ffmpeg 格式转换过程

    千次阅读 2012-08-03 17:33:57
    ffmpeg作为一个支持非常多视频、音频格式的开源项目,其应用灰常广泛。今儿在这我们就探讨一下读者对其的理解,其中不泛错误谬误,望各位大大批评指教。这样做的原因主要是官方的文档比较匮乏。经过无数摸索,有一些...
  • 本章我们主要讲解FFMPEG编码过程,该内容对于EasyPlayer播放器系列项目的后期修改及调整具备重要作用。 FFmpeg是一款音视频编解码库,提供了多种媒体格式的封装和解封装,包括音视频编码、多种协议的流媒体、多种...
  • 使用ffmpeg转换flac文件为mp3,重命名中文文件后使用ffmpeg保持高保真比率转换flac文件
  • FFMPEG 音频转换命令 wav转amr

    万次阅读 2015-12-31 13:43:47
    音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenhuxi.amr amr2wav.wav 3.转换mp3到wav: ffmpeg -i DING.mp3 -f wav test.wav...
  • ffmpeg视频格式转换

    2009-04-18 17:05:20
    ffmpeg,视频格式转换,Linux下FFmpeg编译,支持大部分主流视频编码格式
  • libx265 --enable-libx264 --enable-gpl make make install ffmpeg添加libx265_幽雨雨幽-CSDN博客 4、h264、h265编码转换 ffmpeg -i input.mp4 -c:v libx265 output.mp4 ffmpeg -i input.mp4 -c:v libx264 output....
  • 0.视频格式转换: //将 .264格式转换成avi: ffmpeg -i test.264 test.avi --成功 //将 .264格式转换成flv: ffmpeg -i test.264 test.flv --成功 //将 .264格式转换成mp4: ffmpeg -i test.264 test.mp4 --成功 ...
  • 使用ffmpeg编码和解码aac音频

    千次阅读 2018-06-16 15:07:21
    一、aac音频编码实例#include &lt;stdio.h&gt; #define __STDC_CONSTANT_MACROS #ifdef _WIN32 //Windows extern "C" { #include "libavcodec/avcodec.h" #include "libavformat...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,135
精华内容 6,454
关键字:

ffmpeg编码转换