前提・実現したいこと
ブラウザでZoomのバーチャル動画背景を簡単に作るアプリを開発しています。
Unityで.aviの動画を作成し、ffmpeg wasmで.mp4の動画に変換しています。
Zoomに読み込ませるためには、1280*720の解像度にしなければならないのですが、Unityで作成した動画の解像度は、パソコンのディスプレイによって解像度がバラバラの動画になってしまうことがあります。
そこで、ffmpeg wasmで.mp4の動画に変換する際に1280*720の解像度にしたいです。
解像度を変更するためのプログラムを参考にして修正をしようとしましたが、うまくいかず、悩んでいます…。
該当のソースコード
一部分のみ抜き出しています。
JavaScript
1 const transcodetest = async () => { 2 const message = document.getElementById('message'); 3 message.innerHTML = 'Loading ffmpeg-core.js'; 4 await ffmpeg.load(); 5 await ffmpeg.write('VideoWriterExample_output.avi', blob); 6 message.innerHTML = 'Start transcoding'; 7 8 //ここで1280*720に変換できたら良いのですが、どうすればよいのか分からないです…。 9 await ffmpeg.transcode('VideoWriterExample_output.avi', 'output.mp4'); 10 message.innerHTML = 'Transcoding completed'; 11 const data = ffmpeg.read('output.mp4'); 12 ffmpeg.remove('output.mp4'); 13 14 const video = document.getElementById('output-video'); 15 video.src = URL.createObjectURL(new Blob([data.buffer], { 16 type: 'video/mp4' 17 })); 18
試したこと
https://gigazine.net/news/20201109-ffmpeg-wasm/
こちらのURLに解像度を変更するサンプルプログラムがありましたが、こちらではffmpeg.runを使用しており、私が使っているffmpeg.transcodeとは別のようです。ffmpeg.runのプログラムに書き直すことを試そうとしてみましたが、どのように書き直せばよいのか分からず、うまくいきませんでした。
ffmpeg.transcodeで解像度を変更できないか調べてみましたが、その方法はおそらく無いようです。
補足情報(FW/ツールのバージョンなど)
https://aguroshou.github.io/ZoomVirtualBackgroundMovieMaker/
こちらのURLからプログラムの中身を確認することができますが、人に見せれるようなプログラムではないです…。
https://github.com/aguroshou/ZoomVirtualBackgroundMovieMaker
こちらのURLからアプリをダウンロードし、index.htmlを編集することで動作を確認できます。(https://joytas.net/programming/unity/webgl%E3%81%A7%E3%83%93%E3%83%AB%E3%83%89%E3%81%95%E3%82%8C%E3%81%9Funity%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%83%96%E3%83%A9%E3%82%A6このサイトの設定など手間がかかるため、ご確認して頂く必要はございません。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。