Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用node.js将Author、Title和缩略图等标记添加到.m4a音频文件中?_Node.js_Metadata_Thumbnails_Id3_M4a - Fatal编程技术网

如何使用node.js将Author、Title和缩略图等标记添加到.m4a音频文件中?

如何使用node.js将Author、Title和缩略图等标记添加到.m4a音频文件中?,node.js,metadata,thumbnails,id3,m4a,Node.js,Metadata,Thumbnails,Id3,M4a,使用Node.js以.m4a格式下载包含音乐的文件 问题:我找不到将标签和封面艺术(缩略图)添加到.m4a文件的方法 在使用另一个程序之前,我已经这样做了:由MediaHumanYouTube->mp3下载程序实现(尽管它以m4a格式下载,这是我想要的格式) (顺便说一句,我愿意使用另一种语言,只要该语言可以链接到node,但如果完全可以在node.js中完成,我肯定会非常喜欢) 关于这个问题的任何线索都是非常值得赞赏的。 < P>一个方法是使用基于TAGLIB的No.js C++ + ADND

使用Node.js以
.m4a
格式下载包含音乐的文件

问题:我找不到将标签和封面艺术(缩略图)添加到.m4a文件的方法

在使用另一个程序之前,我已经这样做了:由MediaHumanYouTube->mp3下载程序实现(尽管它以m4a格式下载,这是我想要的格式)

(顺便说一句,我愿意使用另一种语言,只要该语言可以链接到node,但如果完全可以在node.js中完成,我肯定会非常喜欢)


关于这个问题的任何线索都是非常值得赞赏的。

< P>一个方法是使用基于TAGLIB的No.js C++ + ADNDON,在NPM存储库中可用。 此模块可进行简单的mpeg元数据编辑:

const fs = require('fs');
const taglib = require('taglib2');

let props = {
  artist: 'Howlin\' Wolf',
  title: 'Evil is goin\' on',
  pictures: [
    {
      "mimetype": 'image/jpeg',
      "picture": fs.readFileSync('./thumbnail.jpg')
    } 
  ]
}

taglib.writeTagsSync('./file.m4a', props);
现在,我们可以检查元数据是否已更新:

let tags = taglib.readTagsSync('./file.m4a')

console.log(tags.artist, '-', tags.title)  // Howlin' Wolf - Evil is goin' on
console.log(tags.pictures)  // [ { mimetype: 'image/jpeg', picture: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 03 02 02 03 02 02 03 03 03 03 04 03 03 04 05 08 05 05 04 04 05 0a 07 07 06 ... > } ]
let tags=taglib.readTagsSync('./file.m4a')
console.log(tags.artist,'-',tags.title)//Howlin'Wolf-邪恶在继续
console.log(tags.pictures)/[{mimetype:'image/jpeg',picture:}]

但当然,还有其他选项可以做同样的事情,我相信你也可以使用ffmpeg,正如Brad在评论中提到的那样。如果您尝试一下,我会对您的反馈感兴趣。

我终于通过使用ffmpeg using node解决了我的问题


问题是\node\u modules\ffmpeg\lib\video.js决定跳过重复的命令,因此ffmpeg从未正确读取由多个相同命令组成的请求。然而,通过对video.js文件的快速修改,我能够使它工作!我已经成功地在.m4a上写入了标签和缩略图。我将作为子进程执行FFmpeg来处理这一问题。不幸的是,我没有运气让FFmpeg真正运行,我花了几个小时试图开始实际工作,我对这一点非常陌生。谢谢你的回复!谢谢你,我明天第一件事就是试试这个!看起来很有希望!!嘿,很抱歉打扰您,没有任何结果,但我在安装taglib2时遇到问题。我已经安装了两个不同版本的VisualStudio,但taglib2无论如何都无法安装。有什么建议吗?不知道如何在windows上安装。也许答案能帮上忙。嘿!我设法安装了node-id3,并且。。。嗯,要么我不知道如何专门用于m4a,要么。。。m4a不受支持。它破坏音频(完全消失)并“写入”标签,只有它自己才能读取。它基本上破坏了文件。。。现在尝试继续使用ffmpeg,但我得到的结果与ffmpeg相同,减去文件部分的损坏。您介意与我们共享您的video.js mod脚本吗?当然!这里是:请记住,我已经将其集成到我的程序中,因此有一些额外的功能,但您可以在其中找到基本功能^^