2
将静态文件转换为h264 / mp4流会产生加速的视频
我正在构建一个NodeJS应用程序,该应用程序将静态视频文件转换为可流式视频,并通过使用fluent-ffmpeg模块将其动态发送到客户端(iPad或浏览器)。 一切都已设置好,现在我需要正确配置ffmpeg。但是我对ffmpeg有很多问题。最初,我构建了一个Flash流(带有lib264编解码器的flv效果很好,但在iPad上当然不起作用)。 使用当前设置,我会立即听到音频,但是图像在几秒钟后开始播放。然后,我的30秒测试文件已压缩为3秒的高速图像。 我如何配置我的ffmpeg,以便它将正确地流式传输mp4(当然是一次通过)。看来它正在流式传输原始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 version …