最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作

 更新時間:2021年10月25日 11:53:40   作者:劍客阿良_ALiang  
這篇文章主要介紹了java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作,主要是使用ffmpeg命令進(jìn)行轉(zhuǎn)換,該工具類主要是為了將各類音頻轉(zhuǎn)為wav標(biāo)準(zhǔn)格式,其中可以調(diào)節(jié)采樣率、聲道數(shù)等指標(biāo),依賴maven環(huán)境,需要的朋友可以參考下

簡述

該工具類主要是為了將各類音頻轉(zhuǎn)為wav標(biāo)準(zhǔn)格式,其中可以調(diào)節(jié)采樣率、聲道數(shù)等指標(biāo)。主要是使用ffmpeg命令進(jìn)行轉(zhuǎn)換。

環(huán)境依賴

maven依賴

        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv-platform</artifactId>
            <version>1.5.5</version>
        </dependency>

這個包是個全能包,很大,具體可以自己查查它的作用。

ffmpeg依賴

這里要做兩點(diǎn)說明:

1、如果你是本機(jī)運(yùn)行,需要在你運(yùn)行的機(jī)器上安裝ffmpeg,并且將命令配置到環(huán)境變量中。

2、如果你是在docker運(yùn)行,那么在容器內(nèi)也需要安裝ffmpeg,所以給一個建議,可以將帶有ffmpeg命令和jdk8環(huán)境的docker打包為一個專門的ffmpeg運(yùn)行鏡像。以便以后還有使用的場景。

工具類代碼

import lombok.extern.slf4j.Slf4j;
import org.bytedeco.javacpp.Loader;
 
import java.io.IOException;
import java.util.Optional;
 
/** @Author huyi @Date 2021/10/15 10:20 @Description: 音頻轉(zhuǎn)換為wav格式工具類 */
@Slf4j
public class AudioTransforWavUtils {
  /**
   * 音頻轉(zhuǎn)換
   *
   * @param localPath 本地音頻
   * @param fileName 文件名
   * @return 轉(zhuǎn)換后的地址
   * @throws Exception 異常
   */
  public static String transforAudio(String localPath, String fileName) throws Exception {
    // 這個本地轉(zhuǎn)換路徑可以自己調(diào)整
    String transforPath = "D:" + "/" + fileName + ".wav";
    Optional<String> transPath = Optional.empty();
    try {
      transPath = transforWavStandard(localPath, transforPath);
    } catch (Exception exception) {
      exception.printStackTrace();
    }
    if (transPath.isPresent()) {
      return transPath.get();
    } else {
      throw new Exception("音頻轉(zhuǎn)換失敗失敗");
    }
  }
 
  /**
   * wav音頻轉(zhuǎn)換為標(biāo)準(zhǔn)音頻
   *
   * @param oldFilePath 老地址
   * @param newFilePath 新地址
   * @return 轉(zhuǎn)換完成后的地址
   */
  public static Optional<String> transforWavStandard(String oldFilePath, String newFilePath) {
    // 獲取本地ffmpeg執(zhí)行器
    String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class);
    // 生成轉(zhuǎn)換命令管道
    ProcessBuilder transforBuilder =
        new ProcessBuilder(
            ffmpeg, "-i", oldFilePath, "-f", "wav", "-ar", "16000", "-ac", "1", "-y", newFilePath);
    try {
      // inheritIO是指將 子流程的IO與當(dāng)前java流程的IO設(shè)置為相同
      transforBuilder.inheritIO().start().waitFor();
    } catch (InterruptedException | IOException e) {
      log.error("ffmpeg轉(zhuǎn)換wav為標(biāo)準(zhǔn)格式異常", e);
      return Optional.empty();
    }
    // 返回pcm文件路徑
    return Optional.of(newFilePath);
  }
 
  public static void main(String[] args) throws Exception {
    transforAudio("C:\\Users\\huyi\\Desktop\\測試.mp3", "new");
  }
}

測試數(shù)據(jù)為MP3音頻

執(zhí)行打印,會出現(xiàn)ffmpeg的執(zhí)行打印。

執(zhí)行結(jié)果。

說明:我們看到已經(jīng)轉(zhuǎn)換為wav格式。 具體的采樣率、聲道等,可以按照自己的需求配置或者變量化。

總結(jié)

沒什么好總結(jié)的,整就完了。

到此這篇關(guān)于java 音頻轉(zhuǎn)為wav格式標(biāo)準(zhǔn)音頻的文章就介紹到這了,更多相關(guān)java 音頻轉(zhuǎn)為wav格式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java方法的參數(shù)傳遞機(jī)制詳解

    Java方法的參數(shù)傳遞機(jī)制詳解

    這篇文章主要介紹了Java方法的參數(shù)傳遞機(jī)制詳解,對于Java初學(xué)者來說,剛學(xué)習(xí)Java的時候可能經(jīng)常會聽到調(diào)用方法時參數(shù)的值傳遞與引用傳遞,但是,實際上Java中方法的參數(shù)傳遞機(jī)制只有值傳遞,需要的朋友可以參考下
    2024-01-01
  • MyBatis-Plus通過version機(jī)制實現(xiàn)樂觀鎖的思路

    MyBatis-Plus通過version機(jī)制實現(xiàn)樂觀鎖的思路

    version機(jī)制的核心思想就是,假設(shè)發(fā)生并發(fā)沖突的幾率很低,只有當(dāng)更新數(shù)據(jù)的時候采取檢查是否有沖突,而判斷是否有沖突的依據(jù)就是version的值是否被改變了,這篇文章主要介紹了MyBatis-Plus通過version機(jī)制實現(xiàn)樂觀鎖的思路,需要的朋友可以參考下
    2021-09-09
  • 淺析git server“丟失”commit問題

    淺析git server“丟失”commit問題

    這篇文章主要介紹了git server“丟失”commit問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 詳解Java編程中throw和throws子句的使用方法

    詳解Java編程中throw和throws子句的使用方法

    這篇文章主要介紹了詳解Java編程中throw和throws子句的使用方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 詳解Spring?Security?捕獲?filter?層面異常返回我們自定義的內(nèi)容

    詳解Spring?Security?捕獲?filter?層面異常返回我們自定義的內(nèi)容

    Spring?的異常會轉(zhuǎn)發(fā)到?BasicErrorController?中進(jìn)行異常寫入,然后才會返回客戶端。所以,我們可以在?BasicErrorController?對?filter異常進(jìn)行捕獲并處理,下面通過本文給大家介紹Spring?Security?捕獲?filter?層面異常,返回我們自定義的內(nèi)容,感興趣的朋友一起看看吧
    2022-05-05
  • SpringCloud之Feign代理,聲明式服務(wù)調(diào)用方式

    SpringCloud之Feign代理,聲明式服務(wù)調(diào)用方式

    這篇文章主要介紹了SpringCloud之Feign代理,聲明式服務(wù)調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • springboot啟動時沒有日志的原因分析

    springboot啟動時沒有日志的原因分析

    這篇文章主要介紹了springboot啟動時沒有日志的原因分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • mybatis-plus enum實現(xiàn)枚舉類型自動轉(zhuǎn)換

    mybatis-plus enum實現(xiàn)枚舉類型自動轉(zhuǎn)換

    本文主要介紹了mybatis-plus enum實現(xiàn)枚舉類型自動轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法

    Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法

    這篇文章主要介紹了Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法,文中還給出了一個不使用任何SDK實現(xiàn)Oauth授權(quán)并實現(xiàn)簡單的發(fā)布微博功能的實現(xiàn)方法,需要的朋友可以參考下
    2015-11-11
  • Spring Boot 2.0.0 終于正式發(fā)布-重大修訂版本

    Spring Boot 2.0.0 終于正式發(fā)布-重大修訂版本

    北京時間 2018 年 3 月 1 日早上,如約發(fā)布的 Spring Boot 2.0 在同步至 Maven 倉庫時出現(xiàn)問題,導(dǎo)致在 GitHub 上發(fā)布的 v2.0.0.RELEASE 被撤回
    2018-03-03

最新評論

贵德县| 竹山县| 永新县| 江达县| 景宁| 乌鲁木齐县| 武胜县| 五莲县| 黄浦区| 三江| 桐庐县| 襄城县| 大渡口区| 宝清县| 横峰县| 汶川县| 铅山县| 确山县| 治县。| 金溪县| 建昌县| 大兴区| 吴旗县| 新晃| 天全县| 枣阳市| 德保县| 罗城| 温州市| 托克逊县| 大同县| 绵阳市| 历史| 益阳市| 皋兰县| 霞浦县| 纳雍县| 镇赉县| 邓州市| 郁南县| 河曲县|