静的ファイルをh264 / mp4ストリームに変換すると、高速なビデオが生成されます
静的なビデオファイルをストリーミング可能なビデオに変換するNodeJSアプリケーションを構築しています。このビデオは、クライアント(iPadまたはブラウザー)にオンザフライで(fluent-ffmpegモジュールを使用して)送信されます。 すべてが設定され、今必要なのはffmpegを正しく設定することだけです。しかし、私はffmpegで多くの問題を抱えています。最初にフラッシュストリームを作成しました(lib264コーデックを備えたflvはうまく機能しましたが、もちろんiPadでは機能しません)。 現在の設定では、すぐに音声が聞こえますが、画像は数秒後に始まります。次に、30秒のテストファイルを3秒の高速画像に圧縮しました。 どうすればffmpegを構成して、mp4を正しくストリーミングできるようになります(もちろん1回のパスで)。それは生のh264をストリーミングしているようですが、その場合はどのようにしてmp4コンテナーを強制できますか?私は '-f mp4'を使用してそれをしていると思った 私の正しい設定は: '-crf 22','-c:v libx264','-f mp4','-movflags','faststart+frag_keyframe' 私も試しました: '-r 30','-crf 30','-analyzeduration 0','-probesize 1000','-rc_lookahead 0','-fflags nobuffer','-g 75','-ss 0','-threads 0','-vcodec libx264','-qcomp 0.6','-qmin 10','-qmax 51','-qdiff 4','-b:v 400k','-maxrate 400k','-bufsize 800k','-acodec mp3','-ab 192k','-ar 44100','-tune zerolatency','-f mp4','-movflags','faststart+frag_keyframe' 私が試したオプションの量からわかるように、私はかなり必死になっています。私は基本的に暗闇の中で走り回っています。 それほど重要ではないと思いますが、これらは私のリクエストヘッダーです。 res.writeHead(200, { 'Content-Type':'video/mp4', 'Content-Length':stat.size, 'Content-Range':'bytes '+start+'-'+end+'/'+stat.size, 'Transfer-Encoding':'chunked' }); FFmpegログ: file conversion error ffmpeg …