2017-05-14 11 views
1

ffmpegを使用してYouTubeとFacebookに同時にストリーミングしようとしています。ffmpegを使用してFacebookにストリーミングできますが、teeを使用していない場合

個別に行うことはできますが、「tee」を使用して2つの場所にエンコード結果を送信したいと考えています。

私が行う場合:

ffmpeg -re -i pipe:0 -acodec libfdk_aac -bsf:a aac_adtstoasc \ 
    -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline \ 
    -s 720x480 -bufsize 2048k -vb 1300k -maxrate 4000k -deinterlace \ 
    -vcodec libx264 -g 25 -r 25 \ 
    -f flv "rtmp://rtmp-api.facebook.com:80/rtmp/key" 

それだけで正常に動作します。

しかし、私がしなければ:

ffmpeg -re -i pipe:0 -acodec libfdk_aac -bsf:a aac_adtstoasc \ 
    -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline \ 
    -s 720x480 -bufsize 2048k -vb 1300k -maxrate 4000k -deinterlace \ 
    -vcodec libx264 -g 25 -r 25 \ 
    -f tee -map 0:v -map 0:a \ 
    "[f=flv]rtmp://rtmp-api.facebook.com:80/rtmp/key" 

それから私は、RTMP 104エラーが発生します。

 "[f=flv]rtmp://rtmp-api.facebook.com:80/rtmp/key|[f=flv]rtmp://youtube.etc" 

をそして、それは両方にストリーミングします:それは、その後うまくいく場合

私はちょうど行うことができます。

私は "-bsf:a aac_adtstoasc"が必要であることを知りました。そうでなければ、エンコーダが破損し、不正な形式のビットについて不平を言いました。

アイデア?

このエラーはFacebookでのみ発生します。 YouTubeは正常に動作します。

コンソール出力:

Metadata: 
    encoder   : Lavf57.72.101 
    Stream #0:0: Video: h264 (libx264), yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=-1--1, 1300 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc 
    Metadata: 
     encoder   : Lavc57.95.101 libx264 
    Side data: 
     cpb: bitrate max/min/avg: 2000000/0/1300000 buffer size: 2048000 vbv_delay: -1 
    Stream #0:1: Audio: aac (libfdk_aac), 44100 Hz, stereo, s16, 128 kb/s 
    Metadata: 
     encoder   : Lavc57.95.101 libfdk_aac 
frame= 61 fps= 30 q=25.0 size=N/A time=00:00:01.97 bitrate=N/A speed=0.961x   
WriteN, RTMP send error 104 (136 bytes) 
+1

tee muxerを使用して、コマンドから完全なコンソール出力を表示します。 – LordNeckbeard

+1

'-flags + global_header'を追加してteeコマンドを試してください。 – Mulvya

+0

ありがとう、@Mulvya!あなたが答えとしてそれを提供するなら、私は解決策としてそれを確認することができます。それは何をするためのものか? – MikeHelland

答えて

3

FLV形式は、グローバルヘッダーが必要です。 ffmpegがFLVに直接-f flvを出力すると、エンコーダに信号が送られてグローバルヘッダが生成されます。しかし、-f teeがプライマリ/親マクサーである場合、そのフラグは設定されません。したがって、手動で-flags +global_headerで設定する必要があります。

関連する問題