我需要将flac文件转换为wav文件而不改变采样率和位深度.据我所知,更改这些属性可能会扭曲音频,那么如何指定它们不被更改?
另外,有没有办法阻止元数据写入输出文件?
编辑:纳入改变的uv001的答案.
我只能发现ICS 4.0支持FLAC解码,但编码.我需要一些编码器将wav转换为flac,但是当前我找不到它.我发现有一个jFlac avaible,但我不知道如何使用这个库,只是简单地转换文件.
有人能帮我一把吗?
今天,我只是自己一些想法,使用JavaFlacEncoder.它适用于WAV的某些比特率.
我将值更改为现在正在运行的硬编码值.
/*
* Copyright (C) 2010 Preston Lacey http://javaflacencoder.sourceforge.net/
* All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will …Run Code Online (Sandbox Code Playgroud) 我正在编写一个C++库,用于在不同格式/编解码器之间解码和编码音频.我有一个例程,可以在加载所需的编解码器库之前快速检测格式.
对于WAV文件,可以在文件开头简单地查找ASCII值"RIFF"和"WAVE".这同样适用于FLAC,我们可以简单地读取前4个字节,即"fLaC".
但是如何快速检测文件是否是MP3?我不能依赖文件扩展名.我也无法尝试解码第一个MP3帧,因为文件开头可能还有其他数据(例如:ID3,封面图片等).
对silverlight不感兴趣.Flash/javascript/html5解决方案是可以接受的.
如果您不知道这样的解决方案,请问您是否可以这样做?
我刚开始使用Python并使用PyAudio和Wave模块从我的麦克风中取出声音并将其转换为.wav文件.
我正在尝试做的是现在将其转换.wav为.flac.我已经看到了一些方法,这些方法都涉及安装转换器并将其放置在我的环境路径中并通过它调用它os.system.
有没有其他方法可以转换.wav为.flac通过Python?我正在寻找的解决方案需要在Windows和Linux上运行.
我需要获取FLAC文件的元数据.我试过以下代码:
let item = AVPlayerItem(url: URL(fileURLWithPath: path))
let commonMetadata = item.asset.commonMetadata
songInfo[ARTIST_NAME] = "Unknown"
songInfo[GENRE_NAME] = "Unknown"
songInfo[ALBUM_NAME] = "Unknown"
songInfo[PLAY_COUNT] = "0"
for metadataItem in commonMetadata {
switch metadataItem.commonKey?.rawValue ?? "" {
case "type":
songInfo[GENRE_NAME] = metadataItem.stringValue
case "albumName":
songInfo[ALBUM_NAME] = metadataItem.stringValue
case "artist":
songInfo[ARTIST_NAME] = metadataItem.stringValue
default: break
}
}
Run Code Online (Sandbox Code Playgroud)
但这不适用于FLAC文件.任何帮助将不胜感激.
我需要在c#中编写一个实用程序,它使用Google Speech Api将语音从音频文件转换为文本.据我所知,Google只接受此API的.flac格式.不幸的是,我有.wav和.mp3音频文件.所以我试图找出是否有办法让我在.NET中将mp3转换为flac.我看了NAudio,但似乎没有使用flac文件.
我正在编写一个命令行工具,将具有各种格式的输入音乐库(flac/ogg/mp3/...)转换为给定格式的输出音乐库(flac/ogg/mp3).我将它基于avconv(或ffmpeg,如果avconv不可用),因为它是我发现的最完整的命令行转换器.我的脚本可从此URL(GitHub)获得:
https://github.com/biapy/howto.biapy.com/blob/master/various/mussync-tools
我正在尝试将元数据从输入库文件传递到输出/转换的库文件.
我想出了这段代码:
local MAP_METADATA=' 0:g'
# Specific needs for some input formats/
case "${INPUT_FILE_MIMETYPE}" in
'application/ogg' )
# Get input metadata from first audio stream and direct it to global.
MAP_METADATA=' 0:s:0'
;;
* )
# Do nothing.
# MAP_METADATA=' 0:g'
;;
esac
# Specific needs for some output formats/
local OUTPUT_OPTIONS=""
case "${OUTPUT_FORMAT}" in
'flac' )
# No encoding options needed.
ENCODING_OPTIONS=""
;;
'ogg' )
# Set vorbis as default codec for ogg.
OUTPUT_OPTIONS="-codec:a libvorbis -f ${OUTPUT_FORMAT}" …Run Code Online (Sandbox Code Playgroud) 我正在做一种 flac 解析器,我需要解析每个帧的标头。有一个字段以 flac 格式描述(https://xiph.org/flac/format.html#frame_header)
if(variable blocksize) <8-56>:"UTF-8" 编码样本数 (解码数为 36 位) [4] else <8-48>:"UTF-8" 编码帧数 (解码数为 31 位) )[4]
[4] 说:
用于样本/帧编号的“UTF-8”编码与用于存储压缩的 UCS-2 的可变长度代码相同,经过扩展以处理更大的输入。
我完全不明白如果这个字段是 8-56 或 8-48 位,我该如何知道它的大小。那么为什么解码后的数字是36或31位呢?另外,当我在十六进制编辑器中使用 UTF-8 编码打开 flac 文件时,该字段中没有数字。我将非常感谢任何帮助。
我正在尝试将 flac 音频文件转换为 alac 音频文件。使用命令 brew install ffmpeg 安装 ffmpeg 后,我在 mac os 终端中使用 ffmpeg 命令。
运行以下命令后
for name in *.flac; do ffmpeg -nostdin -i "$name" -acodec alac "${name%.*}.m4a"; done
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Stream mapping:
Stream #0:1 -> #0:0 (mjpeg (native) -> h264 (libx264))
Stream #0:0 -> #0:1 (flac (native) -> alac (native))
[ipod @ 0x7fa5c6800000] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0x7fa5c5804a00] …Run Code Online (Sandbox Code Playgroud)