ffmpegwasm / ffmpegwasm/ffmpeg.wasm

ffmpeg.run() never completes/resolves when passed '-' for output file name

オープン
#191 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C
スター
17.8k
フォーク
1.1k
PR マージ指標
30日以内にマージされた PR はありません

説明

As the title says, if '-' is passed so that 'stdout' is sent through 'ffout' in the logger, then code afterwards will never be reached. The below example shows this. I am using 0.9.5 since versions above this gives the #124 error.
```



html, body {
margin: 0;
width: 100%;
height: 100%
}
body {
display: flex;
flex-direction: column;
align-items: center;
}




link



// NOTE: Version 0.9.6+ of ffmpeg.wasm does not like to work, using 0.9.5
const { createFFmpeg, fetchFile } = FFmpeg;
const ffmpeg = createFFmpeg({ log: false});

ffmpeg.setLogger(({ type, message }) => {
if(type != "ffout"){
console.log("[" + type + "]", message);
}
});

// Do the ffmpeg conversion using ffmpeg.wasm
const transcode = async ({ target: { files } }) => {
var input_file = files[0];
const { name } = input_file;
await ffmpeg.load();
ffmpeg.FS('writeFile', name, await fetchFile(input_file));

console.log("Running ffmpeg for VIDEO data...");
await ffmpeg.run('-i', name, '-f', 'image2pipe', '-vsync', '-1', '-vcodec', 'rawvideo', '-pix_fmt', 'bgr565be', '-f', 'rawvideo', '-');

console.log("DONE!");

```
In the above code, 'console.log("DONE!");' is never reached. However, if '-' is replaced with an actual output file name, like "output.mp4" then code after run() will be reached.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。