Im trying to create video streaming using phantomjs that create screenshots from a url then it will pipe the frames to ffmpeg so he can use it to stream the video to an rtmp url . here is what i tried so far :
phantomjs runner.js | ffmpeg -f image2pipe -vcodec png -c:a copy -c:v libx264 -f flv rtmp://localhost/mystream
and here is the script :
var page = require('webpage').create(); page.viewportSize = { width: 640, height: 480 }; page.open('http://www.goodboydigital.com/pixijs/examples/12-2/', function () { setInterval(function() { page.render('/dev/stdout', { format: "png" }); }, 25); });
and this is the output :
ffmpeg version 3.0.2 Copyright (c) 2000-2016 the FFmpeg developers built with Apple LLVM version 7.3.0 (clang-703.0.29) configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-vda libavutil 55. 17.103 / 55. 17.103 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 Output #0, flv, to 'rtmp://localhost/mystream': Output file #0 does not contain any stream
Your present command doesn't specify any input, so use
phantomjs runner.js | ffmpeg -f image2pipe -i pipe:.png -c:a copy -c:v libx264 -f flv rtmp://localhost/mystream
There's no audio input, so setting an audio codec is pointless. If your output needs an audio stream, use
phantomjs runner.js | ffmpeg -f image2pipe -i pipe:.png -f lavfi -i anullsrc -c:v libx264 -c:a aac -f flv rtmp://localhost/mystream
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With