是否有命令行实用程序可以将 mp3 转换为 ogg vorbis,我可以使用 apt-get 安装它?
或者,是否有 nginx 的扩展,以便我可以将其指向一个包含 mp3 文件的目录,并让它即时提供 ogg 文件?
我有几百个 .wav 文件需要转换为 ogg 和 mp3 格式。有没有办法可以从 Audacity 或其他命令行工具批量执行此操作?
好的。我有一些使用桌面录制工具创建的 ogg 文件。我已经使用ffmpeg
一次对它们进行了转码(主要是为了剪掉开头和结尾)。
现在,我有 3 个这样的文件,我想将它们连接成一个.ogv
文件。我尝试使用oggCat
,它因某种错误而崩溃(我尝试使用将文件连接到自身oggCat
,但失败也让我相信我的发行版正在运送损坏的软件包版本)。简单地cat
ing 文件有效,但我无法寻找哪个不酷。mencoder
像这样跑mencoder -ovc lavc -oac lavc file1.ogv file2.ogv file3.ogv -o complete.ogv
。它将文件转码为avi
3 个视频中的一小部分。
那么,我该怎么做呢?
更新 1:我目前的解决方法是将 3 个文件转码为.mpg
using ffmpeg
,然后将cat
它们组合在一起,然后将它们转码回ogv
.
更新 2:PiTiVi 适用于这种事情,但我需要命令行中的一些东西,我可以自动化和编写脚本。
我想将我的音乐从 flac 转换为 ogg,目前 oggenc 除了专辑封面之外完美地做到了这一点。Metaflac 可以输出专辑封面,但是似乎没有命令行工具可以将专辑封面嵌入 ogg。MP3Tag和的EasyTag是能够做到这一点,有它的规范在这里它要求为Base64编码格式的图像。但是到目前为止,我未能成功获取图像文件,将其转换为 base64 并将其嵌入到 ogg 文件中。
如果我从已经嵌入图像的 ogg 文件中获取 base64 编码图像,我可以使用 vorbiscomment 轻松将其嵌入到另一个图像中:
vorbiscomment -l withimage.ogg > textfile
vorbiscomment -c textfile noimage.ogg
Run Code Online (Sandbox Code Playgroud)
我的问题是将 jpeg 之类的内容转换为 base64。目前我有:
base64 --wrap=0 ./image.jpg
Run Code Online (Sandbox Code Playgroud)
这给了我转换为 base64 的图像文件,使用 vorbiscomment 并遵循标记规则,我可以将其嵌入到 ogg 文件中,如下所示:
echo "METADATA_BLOCK_PICTURE=$(base64 --wrap=0 ./image.jpg)" > ./folder.txt
vorbiscomment -c textfile noimage.ogg
Run Code Online (Sandbox Code Playgroud)
但是,这给了我一个图像无法正常工作的 ogg。我注意到在比较 base64 字符串时,所有正确嵌入的图片都有一个标题行,但我生成的所有 base64 字符串都缺少这个标题。进一步分析header:
od -c header.txt
0000000 \0 \0 \0 003 \0 \0 \0 \n i m a g e / j p …
Run Code Online (Sandbox Code Playgroud) Ubuntu 为我将 CD 翻录成音频文件,但它们都是 .ogg 格式,我无法在我的 MP3 播放器上播放。
如何将 .ogg 文件转换为 .mp3 文件?
有谁知道将 .mp4 视频转换为.ogg
视频的方法(在 Windows 中)?我在网上看到的转换器似乎都没有完成这项工作。
我有几个 ogg vorbis 文件,所有文件都使用我想要连接到单个文件的完全相同的属性进行编码。
我知道 ogg vorbis 格式支持多个文件的简单连接,例如:
$ cat file1.ogg file2.ogg > output.ogg
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,并非所有播放器都能理解这样创建的文件,例如我的移动音频播放器,我会避免购买新的。其他不理解它的程序是 gstreamer。如果输入的 ogg 文件碰巧都具有相同的流 ID,则该方法也不起作用。
此外,由于我想扔掉原始文件并只保留连接的版本,因此我希望像cat
解决方案一样无损地完成连接。
我还想避免将文件连接成像 flac 这样的无损格式,因为这会不必要地增加文件大小。如果那没问题,那么我可以保留原始的 ogg 文件并使用更少的空间。
似乎 ffmpeg 有时可以使用concat demuxer来做到这一点:
$ cat inputs.txt
file 'in1.ogg'
file 'in2.ogg'
$ ffmpeg -f concat -i inputs.txt -c copy out.ogg
Run Code Online (Sandbox Code Playgroud)
如果我查看输入文件的原始十六进制转储,那么我可以找到在输出文件中准确表示的 vorbis 数据包。所以我想真的没有重新编码发生。
但这似乎不适用于所有输入文件。有时(不确定是什么触发了这个),ffmpeg 会发出警告:
Non-monotonous DTS in output stream 0:0; previous: 5011328, current: 5011200; changing to 5011329. This may result in incorrect timestamps in the output file.
Run Code Online (Sandbox Code Playgroud)
然后我会听到两个文件之间非常微弱的“间隙”。因此,这当然不是全球解决方案。
由于找不到,我尝试在此 …
是否有任何命令行工具可以编写所有三种格式/容器?我已经搜索过,但找不到任何可以完成这项工作的东西。
到目前为止,我正在使用 vorbiscomment、metaflac 和 id3tool,如果可能的话,我真的想用一个工具替换它们。
如果没有工具可以全部写出来,至少有什么建议可以用至少可以写 id3v2 (v2.4) 标签的东西替换 id3tool 吗?
我不是在寻找标记器,而是在寻找一种工具,它允许我通过脚本将元数据写入不同的音频文件。我目前的状态是我有一个使用三种工具(vorbiscomment、metaflac 和 id3tool)的脚本,但后来我意识到 id3tool 无法编写 id3v2 标签......我正在从 wav 大师自动创建这 3 种音频格式,需要能够自动将元数据写入这些文件。
我有 33 个音频文件,每个文件长约 11 秒,我想将它们合并为一个无损文件。我怎样才能有效地做到这一点(即没有在 Audacity 中剪切粘贴 33 次)?