从AWS Lambda层的ffmpeg输出中删除逗号

时间:2019-03-08 10:11:10

标签: javascript node.js amazon-web-services ffmpeg aws-lambda

我正在使用ffmpeg Lambda层从音频文件获取持续时间和频道。然后,我将这些详细信息输出到变量中,以便以后在我的代码中使用?

任何人都可以发现/整理此代码,以便它仅输出实际值,而不输出以逗号开头的

enter image description here

const { spawnSync } = require("child_process");
var fs = require('fs');
const https = require('https');


exports.handler = async (event) => {
    const source_url = 'https://upload.wikimedia.org/wikipedia/commons/b/b2/Bell-ring.flac';
    const target_path = '/tmp/test.flac';

    async function downloadFile()  {
        return new Promise((resolve, reject) => {
            const file = fs.createWriteStream(target_path);
            const request = https.get(source_url, function(response) {
            response.pipe(file);
            console.log('file_downloaded!');
            resolve();
            });
        });
    }

    await downloadFile();

    const duration = spawnSync(
        "/opt/bin/ffprobe",
        [
            target_path,
            "-show_entries",
            "stream=duration", 
            "-select_streams",
            "a",
            "-of",
            "compact=p=0:nk=1",
            "-v",
            "0"
        ]
        );

        const channel = spawnSync(
        "/opt/bin/ffprobe",
        [
            target_path,
            "-show_entries",
            "stream=channels",
            "-select_streams",
            "a",
            "-of",
            "compact=p=0:nk=1",
            "-v",
            "0"
        ]
        );

    var durations = duration.output.toString('utf8');
    console.log(durations);
    var channels = channel.output.toString('utf8');
    console.log(channels);

    /*const response = {
        statusCode: 200,
        //body: JSON.stringify([channel.output.toString('utf8')])
        body: 'Complete'
    };
    return response;*/
};

只是不确定这些逗号值是从哪里来的,我需要将它们作为数字值,以便稍后在代码中进行比较。

它使用此简单的Lambda层,无需外部模块

https://github.com/serverlesspub/ffmpeg-aws-lambda-layer

0 个答案:

没有答案