2017-02-07 13 views
0

Linux環境でffmpegを実行しています。ここで、Icecastストリームと静的画像からのオーディオストリームをマージして、Youtubeにストリームすることができます。ストリームがサイレントであるときにffmpegがシャットダウンする

時には、Icecastストリームが非常に静かで、時にはほぼ1分間です。これは、コンテンツの性質上、発生することを意図しています。しかし、ストリームがあまりにも静かになると、ffmpegは予告なしにシャットダウンします。

ffmpeg -loop 1 -r 30 -s 1280x720 -i /var/www/html/files/youtube/image.png -i http://my-stream-to-icecast:8000/my-mount -c:v libx264 -preset fast -tune stillimage -crf 18 -c:a copy -shortest -pix_fmt yuv420p -f flv rtmp://a.rtmp.youtube.com/live2/my-youtube-key 

これを解決する方法上の任意のアイデア:

これは、私はffmpegのを起動する方法ですか?そして/または上記を最適化する方法は?

ありがとうございます!

答えて

1

申し訳ありませんが、この回答は無視してください。ストリームがYoutubeではなくIcecastサーバーに返送される場合は適用されます。

これは、Icecastのソースタイムアウトの可能性が高いためです。高効率のコーデックを使用すると、無音は「無」にエンコードされ、icecastサーバーはデータを取得せず、送信元を切断します。

あなたが使うコーデックによっては、あなたが最小ビットレートを設定することができるかもしれ(コーデックはダミーデータを挿入する)か、注入する必要がありますIcecastののerror.logに見て

によってこれを確認することができます低レベルのノイズをオーディオ側に出力します。 1つまたは2つの最下位ビットは人間では知覚できないほど十分であるが、エンコーダをビジー状態にし、ビットレートを上げる。

+0

ffmpegはオーディオをストリームコピーしているため、オーディオエンコーダは呼び出されません。アイスキャストに給油しているものがOPの管理下にあるかどうかはわかりません。 – Mulvya

+0

実際は私の答えは完全に無視されます。ターゲットはIcecastではなくYouTubeです。それを逃しているはずです。 – TBR

0

あなたはダミーストリームと混合試すことができます。

ffmpeg -loop 1 -framerate 30 -i /var/www/html/files/youtube/image.png 
-reconnect_streamed 1 -reconnect_delay_max 120 -i http://my-stream-to-icecast:8000/my-mount 
-f lavfi -i anullsrc 
-filter_complex "[1]aresample=async=1[i];[i][2]amix=2:shortest,volume=2[a]" 
-map 0:v -map "[a]" 
-c:v libx264 -s hd720 -preset fast -tune stillimage -crf 18 -pix_fmt yuv420p 
-c:a aac -shortest 
-f flv rtmp://a.rtmp.youtube.com/live2/my-youtube-key 

Icecastのフィードが死んだ場合、私はどのようにAMIXがそれを処理するしないでください。あなたは確認する必要があります。

+0

ありがとうございます。私はこれを試しましたが、これを取得するだけです: 認識できないオプション 'reconnect_streamed'。 引数リストの分割エラー:オプションが見つかりません v。2.6.9を使用しています。何か案が? –

+0

あなたは3.0以上が必要です。 – Mulvya

+0

これは上記の問題を解決しました。ありがとうございます。しかし、私はまだこれを解決する運がありません: [http @ 0x96e9320]ストリームが途中で0で終了する18446744073709551615 http:// my-stream-to-icecast:8000/my-mount:入出力エラー これ以上のご意見はありますか? –

関連する問題