linux m4a 转换成 mp3

本文介绍如何使用Shell脚本结合LAME和FAAD2等工具批量将.m4a和.flac文件转换为.mp3格式,并保留元数据如艺术家、专辑等信息。

  在开始转换之前我们需要两个程序LAMEFAAD2,这两个包应该通过linux自带的软件包管理器就可以安装。然后久可以用shell脚本来批量转换了,脚本如下

#!/bin/bash

for i in *.m4a; do
    echo "Converting: ${i%.m4a}.mp3"
    faad -o - "$i" | lame - "${i%.m4a}.mp3"
done

  亲测可用。

  另外可以使用flac转mp3,需要以下三个命令flac lame id3,然后使用以下脚本

#! /bin/sh

for a in *.flac; do
    OUTF=${a%.flac}.mp3

    ARTIST=$(metaflac "$a" --show-tag=ARTIST | sed s/.*=//g)
    TITLE=$(metaflac "$a" --show-tag=TITLE | sed s/.*=//g)
    ALBUM=$(metaflac "$a" --show-tag=ALBUM | sed s/.*=//g)
    GENRE=$(metaflac "$a" --show-tag=GENRE | sed s/.*=//g)
    TRACKNUMBER=$(metaflac "$a" --show-tag=TRACKNUMBER | sed s/.*=//g)
    DATE=$(metaflac "$a" --show-tag=DATE | sed s/.*=//g)

    flac -c -d "$a" | lame -m j -q 0 --vbr-new -V 0 -s 44.1 - "$OUTF"
    id3 -t "$TITLE" -T "${TRACKNUMBER:-0}" -a "$ARTIST" -A "$ALBUM" -y "$DATE" -g "${GENRE:-12}" "$OUTF"
done

转载于:https://www.cnblogs.com/wugh/archive/2012/08/20/2647136.html

在Java中将M4A音频文件换为PCM( Pulse Code Modulation)格式,通常需要借助外部库,因为Java标准库本身并不直接提供这样的音频换功能。一个常见的做法是使用第三方库如JAVE(Java Audio Video Encoder)或者FFmpeg,它们支持广泛的音频格式换。 以下是一个简单的步骤概述: 1. **添加依赖**:如果你选择FFmpeg,首先需要下载FFmpeg并将其jar包加入到项目中。如果你在Linux或Mac系统上工作,可以考虑通过环境变量设置路径;如果是Windows,可能会推荐将FFmpeg bin目录添加到系统PATH中。 2. **使用FFmpeg API**: - 导入FFmpeg的API,例如`org.bytedeco.javacv.FFmpegFrameGrabber`和`org.bytedeco.javacv.OpenCVFrameConverter`。 - 创建一个`FFmpegFrameGrabber`实例,指定M4A文件作为输入源。 - 创建一个`OpenCVFrameConverter`实例,指定目标格式为PCM(例如,IntTypeConverter用于将音频换为整数数组)。 - 开始帧抓取,然后通过`convertTo`方法将M4A数据换为PCM数据。 ```java import org.bytedeco.javacpp.opencv_core.IplImage; import org.bytedeco.javacpp.opencv_imgcodecs; import org.bytedeco.javacpp.opencv_videoio; import org.bytedeco.javacv.*; public class AudioConverter { public static void main(String[] args) { FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("input.m4a"); grabber.start(); IplImage frame; OpenCVFrameConverter.ToMat converter = new ToMat(); Mat pcmMat; try { while ((frame = grabber.grab()) != null) { // Convert M4A to PCM data pcmMat = converter.convert(frame); // Now you have the PCM data in pcmMat, use it as needed // For example, write it to a file or process further } } finally { grabber.stop(); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值