Fra*_*fka 4 audio metadata ffmpeg command-line conversion
我目前使用以下命令通过管道.ogg
传输多个文件ffmpeg
for x in *.ogg; do ffmpeg -i "$x" -ab 320k -write_id3v2 1 "`basename "$x" .ogg`.mp3"; done
Run Code Online (Sandbox Code Playgroud)
它工作并打印出以下信息
Output #0, mp3, to '10 Ft. Ganja Plant_Bass Chalice_10_Bass Chalice.mp3':
Metadata:
TSSE : Lavf57.83.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp, 320 kb/s
Metadata:
TITLE : Bass Chalice
ARTIST : 10 Ft. Ganja Plant
GENRE : Reggae
DATE : 2005
ALBUM : Bass Chalice
track : 10
encoder : Lavc57.107.100 libmp3lame
Run Code Online (Sandbox Code Playgroud)
但是当我将文件加载到 iTunes 时,id3 标签不存在。
我尝试在有和没有-write_id3v2 1
选项的情况下使用它,但它仍然不起作用。
我究竟做错了什么?
在您的输入中,元数据不是存储在文件/容器级别(Ogg 元数据似乎有点混乱)而是在流级别,在第一个流内部(作为Vorbis 注释)。
在您的输出格式中,MP3 元数据(ID3 标签)从不是每个流,而是每个文件。即使 ffmpeg 显示了它为音频流复制的所有元数据,它也无法将其中的任何内容存储在 MP3 文件中。(注意如何一帧它不存储,TSSE
被在文件级示出)。
使用 将-map_metadata 0:s:0
Ogg/Vorbis 布局正确转换为 MP3。如手册页所示:
-map_metadata[:metadata_spec_out] infile[:metadata_spec_in]
(output,per-metadata)
[...]
For example to copy metadata from the first stream of the input file to
global metadata of the output file:
ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
To do the reverse, i.e. copy global metadata to all audio streams:
ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
Run Code Online (Sandbox Code Playgroud)
(请注意,ffmpeg 无法识别的字段将映射到 ID3TXXX
帧,iTunes 可能根本不会显示,尽管 foobar2000 可能会显示。)
归档时间: |
|
查看次数: |
3159 次 |
最近记录: |