ffmpegでrtmp配信を行う
ffmpegを使ってmp4ファイルをrtmp配信サーバ(nginx+rtmp_moduleで構築)にアップロードしたいと思っています。
使っているffmpegはstatic ffmpegでffmpeg-git-20170629-64bit-staticを使っています。
OSはCentOS7です。
/root/ffmpeg-git-20170629-64bit-static/ffmpeg -re -stream_loop -1 -i test.mp4 -f flv "rtmp://<domain name>/live/aaaa"
で行なっていますが、アップロードできないようです。特にffmpegではエラーは出ていませんが、rtmpサーバの状況を見てみると一瞬接続(ss -anで確認)しているものの、しばらくすると接続がなくなります。
rtmp配信サーバ(nginx)のログを確認しましたが、特にエラーどころかアクセスログもありません。
このrtmp配信サーバにWirecastなどでrtmp接続・アップロードを行うと接続・配信はできています。
ffmpegでの指示が間違っているのでしょうか?もしくはffmpegに他のライブラリが必要なのでしょうか?
ffmpegの内容も載せておきます。
$ /root/ffmpeg-git-20170629-64bit-static/ffmpeg -V
ffmpeg version N-86676-g45dbb40cd1-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.1 (Debian 5.4.1-11) 20170519
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
libavutil 55. 67.100 / 55. 67.100
libavcodec 57.100.102 / 57.100.102
libavformat 57. 75.100 / 57. 75.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 94.100 / 6. 94.100
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
解決方法ご存知の方はご教示お願いします。
なお、
ffmpeg -i test.mp4 -vframes 1 -ar 44100 -f flv output.flv -loglevel verbose -hide_banner
の結果は以下の通りです。
[h264 @ 0x254fe20] Reinit context to 720x480, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.55.100
Duration: 00:11:46.76, start: 0.000000, bitrate: 2141 kb/s
Stream #0:0(eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 720x480 [SAR 32:27 DAR 16:9], 2000 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
timecode : 00:16:00:05
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 132 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
Metadata:
handler_name : TimeCodeHandler
timecode : 00:16:00:05
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> flv1 (flv))
Stream #0:1 -> #0:1 (aac (native) -> adpcm_swf (native))
Press [q] to stop, [?] for help
[h264 @ 0x25ceb00] Reinit context to 720x480, pix_fmt: yuv420p
[graph_1_in_0_1 @ 0x261bae0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x3
[format_out_0_1 @ 0x269bfe0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_1'
[auto_resampler_0 @ 0x254e1e0] ch:2 chl:stereo fmt:fltp r:48000Hz -> ch:2 chl:stereo fmt:s16 r:44100Hz
[graph 0 input from stream 0:0 @ 0x268c0a0] w:720 h:480 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:32/27 sws_param:flags=2
Output #0, flv, to 'output.flv':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.73.100
Stream #0:0(eng): Video: flv1 (flv), 1 reference frame ([2][0][0][0] / 0x0002), yuv420p(left), 720x480 [SAR 32:27 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 1k tbn, 30 tbc (default)
Metadata:
handler_name : VideoHandler
timecode : 00:16:00:05
encoder : Lavc57.99.100 flv
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
Stream #0:1(eng): Audio: adpcm_swf ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 352 kb/s (default)
Metadata:
handler_name : SoundHandler
encoder : Lavc57.99.100 adpcm_swf
No more output streams to write to, finishing.
frame= 1 fps=0.0 q=5.9 Lsize= 46kB time=00:00:00.00 bitrate=380792.0kbits/s speed=0.0695x
video:46kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.881673%
Input file #0 (test.mp4):
Input stream #0:0 (video): 6 packets read (99870 bytes); 2 frames decoded;
Input stream #0:1 (audio): 8 packets read (2376 bytes); 7 frames decoded (7168 samples);
Input stream #0:2 (data): 1 packets read (4 bytes);
Total: 15 packets (102250 bytes) demuxed
Output file #0 (output.flv):
Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (47183 bytes);
Output stream #0:1 (audio): 0 frames encoded (0 samples); 0 packets muxed (0 bytes);
Total: 1 packets (47183 bytes) muxed