javascript - 如何使用 FFmpeg.wasm 验证视频文件

标签 javascript ffmpeg webassembly

我想验证用户上传的文件。所以我可以知道它是否是有效的 mp4 或任何音频类型。
我正在尝试做类似的事情。

ffmpeg -v error -i file.mp4 -f null - > error.log


当我运行时
await ffmpeg.run(`-v error -sseof -60  -i ${file.name} -f null - > result.text`);

它显示错误[fferr] Unrecognized option 'v error -sseof -60 -i vidoe.mp4 -f null - > result.txt'.什么是正确的方法?

最佳答案

最后,我找到了解决方案。
初始化时createFFmpeg , 有一个属性 logger这需要回调函数来获取日志消息。

  • 创建事件目标以获取日志

  • const logger = new EventTarget(); 
    
  • 初始化 createFFmpeg

  • const ffmpeg = createFFmpeg({
        log: true,
        logger: (l) => {
            logger.dispatchEvent(new CustomEvent("log", { detail: l }));
        },
    });
    
  • 加载 ffmpeg

  • await ffmpeg.load();
    
  • 监听日志

  • let logs = [];
    let log_func = (e)=>{
        logs.push({ type: e.detail.type, msg: e.detail.message });
    };
    logger.addEventListener("log", log_func);
    
  • 运行 ffmpeg

  • ffmpeg.FS("writeFile", file.name, await fetchFile(file));
    await ffmpeg.run("-v","error","-sseof","-60","-i",file.name,"-f","null","-");
    
  • 日志
  • console.log(logs);
    
  • 移除事件监听器

  • logger.removeEventListener("log", log_func);
    
    所有日志存储在 logs大批

    关于javascript - 如何使用 FFmpeg.wasm 验证视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69059452/

    相关文章:

    javascript - AngularJS - 如何在 $http 响应中传递额外的参数

    ffmpeg 视频压缩/特定文件大小

    php - FFMPEG - 用于动画的 Palettegen 不起作用

    node.js - 如何从 node.js 使用 WebAssembly?

    javascript - 如何使 svg 和鼠标光标位置正确

    javascript - 将项目添加到 kendoDropDownList

    javascript - 这行 javascript 的作用是什么?

    ffmpeg - 如何使用 ffmpeg 转换整个目录?

    rust - 我如何在 Rust 中使用来自 web_sys 的 WebGL 扩展

    webassembly - WebAssembly 中如何计算类型 "i32"的值?