現在、ライブビデオをストリーミングしようとしています。私は CCTV カメラと一般的なマイクを装備しています。最新の FFMPEG 1.0 (ソースからコンパイル) を使用しています。残念ながら、私のカメラはビデオ ストリームしか提供しないため、手動でオーディオと結合する必要があります。これが私のコードです:
#!/bin/bash
# record mic input to wav file
arecord -f dat -D hw:0,0 mic.wav &
# record camera stream to avi file
cvlc rtsp://192.168.0.11:554/VideoInput/1/h264/1 --sout "#standard{access=file,mux=avi,dst=camera.avi}" &
# wait few seconds for both sources to stabilize
sleep 5
# join avi and wav to one flv file, then stram it to tcp socket (which is received by crtmpserver and transmitted forward to the website)
ffmpeg -i camera.avi -vcodec flv -i mic.wav -acodec mp3 -s 1280x720 -ar 44100 -ab 192k -vb 3000k -f flv - | ffmpeg -re -i - -codec copy -metadata streamName=streamhd tcp://127.0.0.1:6666 &
このコードは機能し、ストリームは 5 秒未満で受信されます。スリープ時間を増やすと、再生が長く続きます。FFMPEG は、最初に受け取ったデータだけを変換するようです。
さらに変換を強制する方法は?
名前付きパイプを試しました。その場合、FFMPEG は入力フォーマットを認識できません。