zoukankan      html  css  js  c++  java
  • ffmpeg常用转换命令,支持WAV转AMR

    音频转换:

    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

    4.转换wav到amr:

    ffmpeg -i test.wav -acodec libamr_nb -ab 12.2k -ar 8000 -ac 1 wav2amr.amr

    ffmpeg.exe -i PA003.wav -ar 8000 -ab 12.2k -ac 1 target.amr  此方法验证通过 
    文章来自http://blog.csdn.net/tylz04/article/details/9041739
    测试程序下载:http://files.cnblogs.com/xiaofengfeng/WavConvertAmr.zip 已测试过将WAV转AMR格式。
    下载地址http://ftp.pconline.com.cn/d56bb83a0a66440d54ef5473f548e4b9/pub/download/201010/ffmpeg-20131021.zip

    5.转换wav到mp3:

    ffmpeg -i test.wav -f mp3 -acodec libmp3lame -y wav2mp3.mp3

    视频转换:

    1.转换wmv到mp4:

    ffmpeg -i sample.wmv -vcodec libx264 -acodec aac out.mp4

    2.抓取H264视频流:

    ffmpeg -i sample.flv -vcodec copy -vbsf h264_mp4toannexb -an out.h264

     2.1 vbsf为过滤方法,即将flv规定的H264组织方式转换回H264协议书规定的字节流格式  2.2 -an 禁掉源文件中的音频,因为出来的码流不需要音频  2.3 vcodec copy这个是必然的

    3.将H264视频流转为mp4:

    ffmpeg -i sample.h264 -f mp4 haha.mp4

    4.接收rtsp并存为视频文件:

    ffmpeg -rtsp_transport tcp -i rtsp://streaming1.osu.edu/media2/ufsap/ufsap.mov -vcodec copy -acodec copy -t 30 -f mp4 rtsp-out.mp4

    4.1 -rtsp_transport tcp:指明传输方式是tcp方式(也可以是udp)

    4.2 -t 30:指明我录制30秒

    ffmpeg将音频或视频编码为AMR格式音频

    Android编码的MP4音频格式可能为AMR,这时候用以下命令可以从MP4中直接提取AMR音频:

    ffmpeg -i test.mp4 -c:a copy test.amr

    将其他格式的音频或视频转成AMR的命令:

    新写法:

    ffmpeg -i test.mp4 -c:a libopencore_amrnb -ac 1 -ar 8000 -b:a 12.20k -y test.amr

    旧写法:

    ffmpeg -i test.mp4 -acodec libopencore_amrnb -ac 1 -ar 8000 -ab 12.20k -y test.amr

    系统环境:Suse 64bit OS 前期准备: 1、  下载ffmpeg源代码:http://ffmpeg.org/download.html,这里选择版本为0.11.1 2、  下载OpenCORE AMR:http://sourceforge.net/projects/opencore-amr/,这里选择的版本为0.1.3。

    并将下载的文件存放与/home/ffmpeg目录下,以root用户登录系统。

    具体步骤:

    1、  编译安装opencore-amr,这里需要注意的是在执行configure命令的时候要添加--enable-shared=no --enable-static=yes参数,其主要作用是禁止生产动态链接库、允许生产静态库。

    chmod 755 opencore-amr-0.1.3.tar.gz

    tar -xzvf opencore-amr-0.1.3.tar.gz

    cd opencore-amr-0.1.3

    ./configure --enable-shared=no --enable-static=yes

    make

    make install

    2、  编译安装ffmpeg,注意configure命令后面所要添加的参数,可以通过执行configure --help命令查看后面所允许带的参数

    chomd 755 ffmpeg-0.11.1.tar.gz

    tar -xzvf ffmepg-0.11.1.tar.gz

    cd ffempg

    ./configure --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay --disable-ffprobe --disable-ffserver --enable-libopencore-amrnb --enable-libopencore-amrwb --prefix=/home/ffmpeg/target

    make

    make install

    以上命令成功执行后将会在/home/ffmpeg/target目录下的bin目录得到ffmpeg文件,该文件已经包含amr解码器

    3、  测试:

    chmod 755 ffmpeg

    ./ffmpeg -I PA003.wav -ar 8000 -ab 12.2k -ac 1 target.amr

    4、  注意事项:

    a)         以上方式都是通过静态库的形式编译,采用静态库的形式编译的好处在于:编译后的可执行文件ffmpeg可以不依赖于amr解码器,简单地说,可执行文件已经将amr解码器包含在内了。

    b)         ffmpeg在编译时候会优先查找amr解码器的动态链接库,如果没有找到,则查找amr解码器的静态库。在第一步中如果没有禁止amr生成动态链接库,则ffmpeg将采用amr的动态链接库进行编译,其缺点是,编译后的可执行文件ffmpeg将依赖于amr的动态链接库,如果系统的动态链接库搜索路径LD_LIBRARY_PATH不包含amr动态链接库所在路径,则ffmpeg将会报错,无法正常工作。

    c)         amr编译安装时不建议添加prefix=XXX参数(./configure)修改amr安装路径,这样ffmpeg在编译安装时将出现找不到amr解码器的情况

  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/mili3/p/4701801.html
Copyright © 2011-2022 走看看