1. 程式人生 > >ffmpeg 音訊轉amr

ffmpeg 音訊轉amr

其編譯方法;
    chmod 755 opencore-amr-0.1.3.tar.gz     //改變檔案操作許可權
    tar -xzvf opencore-amr-0.1.3.tar.gz     //解壓檔案
    cd opencore-amr-0.1.3       //進入到opencore-amr資料夾內
    ./configure --enable-shared=no --enable-static=yes  //配置
    make        //編譯
    make install

ffmpeg會自己尋找解碼器
ffmpeg檢視是否支援opencore-amr:
終端輸入: ffmpeg檢視 –enable-libopencore-armnb和–enable-libopencore-amrwb表示支援opencore-amr解碼器

configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus
--enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-libzvbi --
enable-version3 --disable-ffplay --disable-indev=qtkit

3.mp3與wav轉amr程式碼

/** ffmpeg的安裝目錄,用於啟用ffmpeg */
private static final String ffmpeg = "/usr/local/ffmpeg-3.3-64bit-static/ffmpeg";
/**
 * -ab(-b:a) bitrate 設定音訊位元速率
 * -ar freq 設定音訊取樣率
 * -c:a(-acodec) 設定聲音解碼器
 * -y 覆蓋輸出檔案,若果原始檔已經存在,那麼不經提示,直接覆蓋
 * -vol 音量大小
 * -ac (聲道數1和2)
 * @param sourcePath 原始檔地址,輸出位置:原始檔資料夾內,只改變檔案格式
 */
public static boolean changeToAmer(String sourcePath){
    try {
        String prefix = sourcePath.substring(0,sourcePath.lastIndexOf("."));
        String commend = ffmpeg + " -i " + sourcePath + " -c:a libopencore_amrnb -ac 1 -ar 8000 -b:a 7.95K -y " + prefix + ".amr";
        VideoUtilsExt.executeCommend(commend);
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
    return true;
}

public static void executeCommend(String commend) throws IOException{
        System.out.println(commend);
        Process process = new ProcessBuilder(Arrays.asList(commend.split(" "))).redirectErrorStream(true).start();
        new MyPrintStream(process.getInputStream()).start();
        try {
            process.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

補充:MyPrintStream內部類,其實就是將視訊轉換的獲得的流打印出來(包括ffmeg相關資訊,命令列,以及轉換過程,異常資訊等)

class MyPrintStream extends Thread{
    InputStream iStream = null;
    public MyPrintStream(InputStream iStream) {
        this.iStream = iStream;
    }

    @Override
    public void run() {
        try{
            int r = 0;
            while ((r = iStream.read())!= -1) {
                System.out.print((char)(r));
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

另外,如果視訊轉換的併發量比較大,可以建立一個執行緒池,將轉換程式碼放到執行緒裡面完成。

相關推薦

ffmpeg 音訊amr

其編譯方法; chmod 755 opencore-amr-0.1.3.tar.gz //改變檔案操作許可權 tar -xzvf opencore-amr-0.1.3.tar.gz //解壓檔案 cd openco

ffmpeg音訊碼,採用swr_convert重取樣

/* *最簡單的音訊轉碼器(只處理音訊) *繆國凱 Mickel *[email protected] *本程式實現從一個視訊格式轉碼到另一個視訊格式,只處理音訊,視訊忽略,若有多個音訊流,只處理第一個,採用swr_convert重取樣 *2015-5-8 */ #include "stdaf

FFmpeg音訊碼總結

最近自己在做音訊轉碼的事情。剛開始是想通過ffmpeg的示例程式來學習,可是比較複雜,短時間內看的頭昏腦脹。索性在網上搜索關於轉碼的例子。還是在雷神的部落格裡找到了類似的示例程式,地址是:http://blog.csdn.net/leixiaohua1020/article

CentOS7.4 yum和原始碼安裝ffmpegamr格式音訊碼為mp3

原始碼安裝: 安裝依賴: # yum install nasm yasm 安裝依賴: # wget https://nchc.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz # tar -

C# 使用 ffmpeg 進行音訊

先放一下 ffmpeg 的官方文件以及下載地址: 官方文件:http://ffmpeg.org/ffmpeg.html 下載地址:http://ffmpeg.org/download.html 用 ffmpeg 進行轉碼很簡單,全部都用預設引數的話用下面這句就行: ff

iOS 音訊錄製AMR和WAV互(支援64位)

公司專案中涉及到語音錄製的功能,在錄音格式方面遇到一些小問題現在拿出來與大家分享一下。 眾所周知,iOS 音訊錄製是不支援AMR格式的。但 Android 好像是預設是AMR格式的。兩邊格式不同必然有一方做出妥協的。這裡只簡單介紹一下iOS 格式轉碼的方法。 1、音訊錄製簡介 在AVFoun

JAVA 音訊轉換AMR MP3,OS,Linux cent os 7

場景 近期在做微信開發時,需要獲取使用者發給公眾服務號的語音留言。而從微信服務端下載來的語音格式卻是amr的格式,同樣的你手機錄音、Android語音等也都是生成amr格式檔案。但當你想在web頁面去播放此檔案時,就困難了。因為無論是當前HTML5的<audio>標籤,還是眾多的播放外掛都不

瀏覽器音訊相容和ffmpeg音訊碼使用

1、百度搜索瀏覽器對於音訊檔案的相容,排在前面的文章大部分是複製貼上很久以前的文章,容易誤導搜尋資料的人, 因此重新驗證整理下。   以Firefox瀏覽器為例,Firefox對於mp3格式音訊的支援在釋出版本21時就已經支援了(2013年)。 下載Firefox各個版本,然後在audio標籤上引入mp3

【原創】音訊碼-Mp3AMR--轉載請註明出處

一、常見音訊轉碼方案 1.採用阿里雲OSS進行轉碼 採用阿里雲OSS僅支援amr -> mp3格式的轉碼,但是不支援mp3 -> amr 格式的轉碼,呼叫後會丟擲 amr 格式不支援的異常。OSS轉碼為非同步轉碼,呼叫時是通知OSS的轉碼服務,將

ffmpeg wav mp3 以及其他音訊轉換

不用說,ffmpeg是一個太牛犇的視訊處理庫。但是在音訊處理(轉換)方面,確實讓人捉急。有時還有依賴其他音訊轉換庫。不過,這不會讓我減少對它的膜拜之情。 先上重頭 wav轉MP3 0.轉換wav到mp3: ffmepg -i input.wav -f mp3 -acode

Python使用ffmpy將amr格式的音訊化為mp3格式

最近做了一個專案,將從微信下載的音訊檔案(預設為.amr格式)轉化為mp3格式(否則前端播放將會遇到困難)上傳到雲端。經過一番研究,最終決定採用Python的ffmpy包。安裝只需執行pip install ffmpy注意,ffmpy只是命令列工具FFmpeg的一個包裝,若要

FFmpeg圖片成視頻

決定 圖片 src str log -c mpeg format ict 命令 ffmpeg64.exe -f lavfi -i aevalsrc=0:0:0:0:0:0::d=10 -loop 1 -i ico.jpg -c:v libx264 -c:a aac -st

FFmpeg簡單碼程序--視頻剪輯

read all 解碼 num avs key iba yuv start 學習了雷神的文章,慕斯人分享精神,感其英年而逝,不勝唏噓。他有分享一個轉碼程序《最簡單的基於FFMPEG的轉碼程序》其中使用了filter(參考了ffmpeg.c中的流程),他曾說想再編寫一個

蘋果新品的另一個Bug出現了,蘋果二合一音訊接頭方案還是你貼心的小棉襖

蘋果新品的另一個Bug出現了,希望蘋果二合一音訊轉接頭方案給你一點點慰藉感。還記得蘋果新品釋出會的時候的那句吐槽的話嗎?窮逼都是熬夜看蘋果釋出會,有點人都是睡醒直接下單,這說明什麼,Enroo 覺得大家正在把蘋果手機當成一種身份和財力的象徵了。所以蘋果不管被怎麼吐槽都還是很多人在不斷地購買,

javaweb中ffmpeg視訊碼h264出現卡住不執行的解決辦法(看到最後面就是答案了)

鄭文亮 專心地鑽研程式設計,每天進步一點點 部落格園 首頁 新隨筆 聯絡 管理 隨筆-1610  文章-3  評論-5

docker部署hadoop+ffmpeg分散式碼系統

本系統應用程式部分是基於此專案,也非常感謝這位大神修復了專案中的部分bug。 公司最近需要做一個分散式轉碼系統,百度之後發現使用hadoop+ffmpeg的人居多,因此決定使用上面提到的專案實現分散式轉碼的功能。該專案包含兩個程式:TranscoderClient和Tran

Android FFmpeg視訊碼並儲存到本地

本文講述在Android中, 如何將FFmpeg視訊轉碼為YUV格式並儲存到本地。 配置好之後,我們先來明確下概念,FFmpeg解碼的流程是固定的 av_register_all: 註冊所有元件 avformat_open_input : 開啟輸入視訊檔案

最簡單的基於FFMPEG碼程式

                本文介紹一個簡單的基於FFmpeg的轉碼器。它可以將一種視訊格式(包括封轉格式和編碼格式)轉換為另一種視訊格式。轉碼器在視音訊編解碼處理的程式中,屬於一個比較複雜的東西。因為它結合了視訊的解碼和編碼。一個視訊播放器,一般只包含解碼功能;一個視訊編碼工具,一般只包含編碼功能;而一

FFmpeg 視訊化為bmp圖片例項解析

本文中的函式詳細解析可參照:GO>> 我的部落格: FFmpeg部分函式解析 #include <libavcodec/avcodec.h> #include <li

ffmpeg視訊錄製與壓縮

ffmpeg常用命令含義如下: -i 設定輸入流或輸入路徑,例如安卓裝置格式為 /sdcard/……xxx.mp4 -f 設定輸出格式 : -f flv, -f mp3 -s 設定畫面的寬和高,格式為 -s w*h,這裡的w是長邊,h是短邊,安卓設備註