[英]How to read metadata from mp4 using mp4.js node module?
我正在嘗試使用節點模塊mp4js將mp4文件中的元數據標簽讀取到我的javascript中。 我遵循了該頁面上提供的模型,但是存在一些問題。
我嘗試了以下方法:
var mp4 = require('mp4js');
mp4({ file: 'small.mp4', type: 'local' }, function (err, tags) {
// tags now contains your MP4 tags
console.log('Tags: ' + tags)
$scope.mp4Tags = tags;
});
並且遇到了Uncaught TypeError: Cannot read property 'join' of undefined
有人知道我在這里想念的嗎? mp4可能沒有標簽嗎? 我只是用Google搜索“示例mp4”並下載了一些內容。 這是我第一次嘗試此模塊,並且對Node來說還很陌生。
我也歡迎閱讀mp4元數據的其他建議。
非常感謝您的寶貴時間,如果您需要我提供的其他任何信息,請告訴我。
編輯8.26.2015
按照Brad的建議,我嘗試了以下代碼從mp4中讀取元數據:
var child_process = require('child_process');
ls = child_process.spawn('ffmpeg/bin/ffprobe.exe', ['-print_format', 'json', 'out.mp4']);
ls.stdout.on('data', function (data) {
console.log('stdout: ' + data);
$scope.mp4data = data;
});
我通過遵循以下示例通過從命令行使用ffmpeg添加標題元標記來創建mp4.out。 這是我的輸出的屏幕截圖 。 這是我輸入的命令:
ffmpeg -i in.avi -metadata title="my title" out.flv
使用上面的代碼運行我的應用程序之后,存儲在$scope.mp4data
的值是一個本機緩沖區, 看起來像這樣 。 我所看到的只是一些數字,但沒有元數據標簽。 如何查看使用上述命令設置的元數據(例如標題)? 我在論據中遺漏了什么嗎? 還是我應該查看data
以外的其他內容?
謝謝您的幫助。 由於重點已經轉移,我可以將其發布為新問題。
編輯:解決方案
在布拉德的幫助下,我到達了這里:
$scope.mp4data = "";
ls.stdout.on('data', function (data) {
$scope.mp4data = $scope.mp4data + data.toString();
});
ls.stdout.on('end', function (data) {
$scope.mp4data = JSON.parse($scope.mp4data);
});
非常適合從mp4中讀取元數據! 謝謝布拉德!
我建議使用FFprobe(來自FFmpeg項目)來代替。 它支持許多容器,包括MP4。
您可以使用ffprobe -print_format json
使其輸出可在Node.js應用程序中解析的JSON數據。
此處為一些示例: https : //stackoverflow.com/a/8191228/362536
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.