我想使用 ffmpeg 对实时流进行编码并将其发布到 Flash Media Server。为了支持 iOS 设备,我还需要实现 HTTP Live Streaming。视频必须是 H.264 格式,音频应该是 AAC。我没有太多使用 ffmpeg 的经验,而且我很难让它发挥作用。这是我尝试过的命令(以及一些变体):
ffmpeg.exe -threads 15 -f dshow -i video="USB2.0 UVC WebCam":audio="Microphone (Realtek High Defini" \
-map_channel 0.1.1 -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 \
-s vga -vb 100k -f flv "rtmp://<public-dns>/livepkgr/livestream1?adbe-live-event=liveevent" \
-r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s qvga -vb 200k \
-f flv "rtmp://<public-dns>/livepkgr/livestream2?adbe-live-event=liveevent" \
-r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s vga -vb 350k
-f flv "rtmp://<public-dns>/livepkgr/livestream3?adbe-live-event=liveevent"
当我运行它时,它似乎连接到 FMS,但随后我收到很多关于丢帧的错误消息——我不确定是否有任何帧被成功编码。我的 CPU 使用率也很高。当我为单个流之一输入 *.m3u8 文件的 URL 时,我从 FMS 收到 404 错误(尽管可以访问主 livestream.m3u8 文件)。我也尝试过输出到文件而不是 FMS,但没有成功。我得到的只是一些非常混乱的声音,没有视频。
关于我应该使用哪些选项/命令来使其正常工作的任何建议?是否有人使用带有 FMS 的 ffmpeg 来处理带有 MP4 视频的 HTTP 动态流/HLS?我一直在努力让 HDS/HLS 工作一段时间,任何帮助将不胜感激!应该没什么区别,但我在 Amazon EC2 上使用 FMS 和他们的 AMI 映像。
谢谢!