- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在编写一个命令行工具,用于将具有各种格式(flac/ogg/mp3/...)的输入音乐库转换为给定格式(flac/ogg/mp3)的输出音乐库。我将它基于 avconv(如果 avconv 不可用,则基于 ffmpeg),因为它是我发现的最完整的命令行转换器。我的脚本可以在这个 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}"
# Map input metadata to all audio streams in ogg container.
MAP_METADATA=":s:a ${MAP_METADATA}"
;;
* )
# Do nothing.
# MAP_METADATA="${MAP_METADATA}"
OUTPUT_OPTIONS="-f ${OUTPUT_FORMAT}"
;;
esac
# Dangerous solution for mp3 cbr format:
# Write output on pipe and then directed to file.
# For cbr format for mp3 files. Harmless for other formats.
# See: http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=7&t=377
#
# What about log output ? how to prevent it from being included in
# the resulting output file ?
if ! command ${AVCONV} -i "${INPUT_FILE}" \
-vn -sn \
-map_metadata${MAP_METADATA} \
-loglevel "${LOG_LEVEL}" \
${AVCONV_OPTIONS} \
${OUTPUT_OPTIONS} \
${ENCODING_OPTIONS} \
"${OUTPUT_TEMP_FILE}"; then
test "${QUIET}" != 'True' && echo "Failed."
test -e "${OUTPUT_TEMP_FILE}" && command rm "${OUTPUT_TEMP_FILE}"
return 1
else
test "${QUIET}" != 'True' && echo "Done."
# Test if fix for MP3 VBR is needed.
# See: http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=7&t=377
if [ "${OUTPUT_FORMAT}" = 'mp3' -a "${ENCODING_MODE}" != 'CBR' ]; then
# Output file is MP3 and VBR. Apply header fix.
if [ "${VERBOSE}" = 'True' ]; then
command vbrfix "${OUTPUT_TEMP_FILE}" "${OUTPUT_FILE}"
else
command vbrfix "${OUTPUT_TEMP_FILE}" "${OUTPUT_FILE}"
fi
else
# Nothing to do but rename the file.
command mv "${OUTPUT_TEMP_FILE}" "${OUTPUT_FILE}"
fi
# Delete temporary file if it is still present.
test -e "${OUTPUT_TEMP_FILE}" && command rm "${OUTPUT_TEMP_FILE}"
# Fetch cover art from input file.
transfert_images "${INPUT_FILE}" "${OUTPUT_FILE}"
fi
我的问题是,当使用 Ubuntu 13.10 Saucy Salamander 上可用的 avconv 版本将 flac 转换为 ogg 时,元数据不会保留,尽管有此选项(将全局元数据从输入 flac 文件复制到输出 ogg 文件的所有音频流) :
--map_metadata:s:a 0:g
你们中有人知道在转换时将元数据从 flac 输入文件复制到 ogg 输出文件的正确 --map_metadata 选项吗?
ps: 附加问题:如何防止 avconv 生成的 CBR mp3 文件具有 VBR header ?
pps:我知道诸如 beets 之类的工具,但我还没有看到可以执行此任务的专门命令行工具。
最佳答案
在这里找到修复:
https://bugs.kde.org/show_bug.cgi?id=306895
好的 --map_metadata 选项是:
--map_metadata 0:s:0
--map_metadata:s:a 0:s:0
注意--map_metadata选项在输出ogg和输入ogg时是一样的。
对于 CBR mp3 文件,此处提供了修复:http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=7&t=37 (输出到管道)有效。 avconv 将日志信息输出到 &2。 &1 是免费的数据。编辑:此修复程序仅适用于 CBR mp3,它破坏了需要直接输出到文件的 VBR mp3。
我已经将更改集成到 mussync-tools 1.2.0:
https://github.com/biapy/howto.biapy.com/blob/master/various/mussync-tools
关于bash - avconv : flac to ogg conversion with metadata kept,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21489719/
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 8 年前。 Improv
我首先尝试使用 FFMPEG 将 CAFF 编码为 FLAC,但 iOS SDK 中没有 NSTask。我听说还有另一种使用 libFlac 将 CAFF 转换为 FLAC 的方法,我在 scumvm
当我尝试处理 flac 文件时,我得到了 “没有文件扩展名flac的处理程序” 错误。有没有办法在windows中解决这个问题。 最佳答案 这个答案可能有点晚了,但您需要版本 14.4.1a(可用 h
我管理了“概述教程”:https://cloud.google.com/speech/docs/getting-started 然后我尝试使用我自己的音频文件。我上传了一个采样率为 16000Hz 的
我正在尝试学习如何使用 SFML,但是当我尝试编译我的 C++ 代码时,Xcode 告诉我Command/bin/sh failed with exit code 2。这是我在单击更多信息时遇到的错误
我已经搜索了这方面的文档,但没有找到任何信息。 我在 Windows 10 Insider Build(也是最新的)64 位中使用最新的 FFMPEG nightly build。 我需要知道如何定义
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
我发现使用 av_seek_frame() 查找 FLAC 文件并不适用于 ffmpeg。将 FLAC 解码为原始 PCM 工作正常,但一旦我调用了 av_seek_frame(),下一次调用 av_
我正在使用 FFMpeg 转换音频格式,特别是转换为 FLAC。由于某种原因,我无法在元数据中保留专辑封面。 我正在使用的当前命令格式是: ffmpeg -I source.alac -c:v cop
我想检查一个音频文件是否是 MP3 或 FLAC 检查只需要基本的但我想超越简单地检查文件扩展名 os.path.splitext 工作正常,但如果文件没有写入扩展名或有人传递了一个带有假扩展名的文件
我需要将 flac 文件转换为 wav 文件而不更改采样率和位深度。据我所知,更改这些属性可能会使音频失真,那么我如何指定它们不被更改? 此外,有什么方法可以防止元数据写入输出文件吗? 最佳答案 正如
我需要将 flac 文件分割成许多部分。我正在使用 jFLAC 库读取 flac 文件 FLACDecoder decoder = new FLACDecoder(inputStream); 然后我尝
32 位 Windows XP 上的 Qt 5.0.1 QMediaPlayer 只能播放 MP3 和 WAV 文件。我怎样才能扩展它来播放 OGG 和 FLAC 文件呢? 最佳答案 Qt 的多媒体模
我目前正在尝试编写一个 FLAC 到 WAV 转码器作为 C++ 练习,目前我在 FLAC 格式有关位排序的措辞方面遇到了一些困难。 这是讨论排序的(小)部分: All numbers used in
是否有适用于流的 C/C++ FLAC 标记库?无论我在哪里看,我只找到那些对文件有效的。这对我来说有点奇怪——为什么要使用像文件这样的有限的东西而不是更抽象的流。好吧,也许我只是被托管语言的简洁性宠
我使用 audoiRecord 类录制音频。现在我想将音频原始文件转换为 *flac 格式。我接下来将 *raw 文件转换为 wav: private void copyWaveFile(String
我正在开发应使用 Google Voice API 的 iPhone 应用程序,因此我的应用程序应将以 m4a 格式录制的语音转换为 flac。我当然应该使用 libflac,但由于链接器错误,我所有
我想录制语音,然后得到.flac 格式的文件,我可以将录制的声音保存为 flac 吗?如果是 - 怎么做?我试过了,但只有 .caf 可用.. 最佳答案 iOS 不支持 FLAC 检查这个:http:
我正在尝试使用 libSoX API 以编程方式转换内存缓冲区中的音频。例如,它可以很好地改变采样率,但在 PCM 和 FLAC 之间转换时我遇到了一些麻烦。 QByteArray inData =
编辑:我已经更新了下面的代码以类似于我取得的进展。我正在尝试自己编写 .wav header 。截至目前,代码无法正常工作,音频未正确写入文件。该代码不包含任何将其转换为 .flac 文件的尝试。 我
我是一名优秀的程序员,十分优秀!