Menu

#106 rtmp source - feature request

Fixed
nobody
None
Medium
Defect
2014-09-08
2014-03-09
Anonymous
No

Originally created by: skickm...@gmail.com

What steps will reproduce the problem?
1.this is a feature request
2.
3.

What is the expected output?

Use rtmp source as input
For instance use an application like BroadcastMe (available on Android). this application looks for an RTMP server (to be specified with the rtmp://IP_address_server/mystreamname)
It would be great if I could arrange for a custom input that accommodates this.
It may be already possible, with the custom file example provided, but I'm not sure

What do you see instead?

The Operating system you are using (Linux, Windows etc)?
Ubuntu Studio 10.13

What version ofWebcamStudioare you using?
0.65

What version of Java are you using?
OpenJDK 7

What is your Webcamera vendor, model and version?
IP camera application on mobile phone

For *nix users please enter the output from "sudo lsusb"?
Not relevant as this is a feature request

Discussion

  • Anonymous

    Anonymous - 2014-03-10

    Originally posted by: soylent...@gmail.com

    Hi, have you tried to add an URL-StreamPanel, change the back-end to Gstreamer, put the rtmp link in the text field and play it?
    let me know.
    Thanks.
    karl.

     
  • Anonymous

    Anonymous - 2014-03-10

    Originally posted by: skickm...@gmail.com

    Hi Karl,

    I tried this, but no luck..
    I'm not sure what rtmp link to insert.
    ffmpeg can act as the rtmp server, but what is the address/link I should use?

    Best regards,
    RJ

     
  • Anonymous

    Anonymous - 2014-03-11

    Originally posted by: soylent...@gmail.com

    Hi skickmail,
    I think you have to bring up an RTMP server but i don't know if IceCast2 or red5 can do that (you have to dig a bit ...).
    Then you can send the stream from Android to the server via rtmp.
    Finally you can get the source from RTMP server into WebcamStudio thought the URL-StreamPanel.
    I search a little but i only found an FFmpeg command line that get RTMP as input and outputs few other streaming formats.

    https://gist.github.com/bnerd/4069082

    I really don't know if it acts like a server but I hope this can help, otherwise you have to study well streaming servers like Icecast red5 or nginx ...
    Let me know.
    karl

     
  • Anonymous

    Anonymous - 2014-03-11

    Originally posted by: soylent...@gmail.com

    I forgot to ask you if you have tried to use WebcamStudio URL-StreamPanel changing the backend to Gstreamer, maybe it works ...
    karl

     
  • Anonymous

    Anonymous - 2014-04-27

    Originally posted by: skickm...@gmail.com

    Hi Karl,

    Sorry for the late reply. I was pulled into another project.
    In the mean time I have installed nginx as this seems to be a very efficient server.
    I configured it with the rtmp module.
    I'm able to send rtmp streams to the server (with cameras you can get for Android phones) and convert the incoming stream to basically any video format I like.
    VLC player is able to play back the resulting stream from the server.
    For instance, I link VLC to rtmp://localhost/small/test and it will play the video from the nginx server.

    So I wanted to point WebcamStudio to the same source to take this in as one of the video sources.
    Unfortunately I was not able to.
    I used URL-Streampanel and provided the same rtmp url as what I did with VLC

    I've tried the various suggestions with different back-ends, but this did not offer a solution.
    If you have any ideas, I'd welcome to hear them.

    RJ

     
  • Anonymous

    Anonymous - 2014-04-28

    Originally posted by: soylent...@gmail.com

    Hi RJ,
    maybe i understand .. if you are using Ubuntu 14.04 the support for h264 in gstreamer 0.10 is broken ... WS uses gstreamer to get rtmp or rtsp, so i have to switch the commands to gstreamer 1.x ... I also think that the gst-launch command i used is not so well written ... and maybe WS can't open the link anyway ...
    Thanks for the feedback, i'm working on it.
    karl.

     
  • Anonymous

    Anonymous - 2014-04-28

    Originally posted by: soylent...@gmail.com

    Hi RJ,
    (Anyway I have added you to the About/Credits of WebcamStudio as "skickmail", is better "RJ" I think ?) :)
    I have something you can test and hope it works ...
    I rewrite all gst-launch rtmp related command in 1.x format.
    Can you try this jar:

    https://drive.google.com/file/d/0BxkZ_wh6t7jbNFJsUGVBdUNra1k/edit?usp=sharing

    Please let me know.
    Thanks.
    karl.

     
  • Anonymous

    Anonymous - 2014-05-04

    Originally posted by: skickm...@gmail.com

    Hi Karl,

    Thanks for adding me to the about/credits. I'd prefer RJVisser if that is OK :-)

    I downloaded the new jar but was not able to get it to accept the rtmp stream from the nginx server.
    Here's what I tried:
    start nginx server
    check video stream from the server with VideoLAN: worked
    used the same rtmp link in 'Add URL stream' window - backend AVConv: did not work
    stopped the attempt to play-back
    changed the backend to GStreamer
    tried to play-back: did not work...

    as a reference, here's the conversion setting I used on the nginx server application:

    exec /usr/bin/avconv -re -i rtmp://localhost:1935/$app/$name -vcodec libx264 -preset veryfast -b:v 2000k -maxrate 2000k -bufsize 2000k -sws_flags lanczos -r 30 -acodec copy -f flv rtmp://localhost:1935/small/${name};

    the application on the Android phone is: Video Broadcaster + 1.03
    I selected this as it offers good options to optimize the video stream to the nginx server. Even upto 60 frames per second.
    - as a side-note: it would be great if WS could be set to allow 60 fps as well.

    Let me know whether there is anything I may have done to the video stream (format) that makes it impossible for WS to display the contents. I can change the instructions on the server to accommodate a different output as well.

    Cheers,

    RJ Visser

     
  • Anonymous

    Anonymous - 2014-05-04

    Originally posted by: skickm...@gmail.com

    Karl,

    Here's the content shown when I start the WS application:

    Welcome to WebcamStudio 0.65 build 538 ...
    Overall Audio Output set to: 44100Hz
    Distro: ubuntu
    Init AudioOut ...
    SinkAudio registered.
    Port used is Video:0/Audio:51332
    Command Out: gst-launch-1.0 tcpclientsrc port=51332 ! audio/x-raw, format=S16BE, channels=2, rate=44100 ! audioconvert ! alsasink
    Output aborted...
    V: 0
    A: 0
    AudioOut Audio Cleared ...
    AudioOut Audio Cleared ...
    AudioOut unregistered.
    May 04, 2014 5:17:13 PM webcamstudio.media.renderer.Exporter$2 run
    SEVERE: null
    java.net.SocketException: Socket closed
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
        at java.net.ServerSocket.implAccept(ServerSocket.java:530)
        at java.net.ServerSocket.accept(ServerSocket.java:498)
        at webcamstudio.media.renderer.Exporter$2.run(Exporter.java:110)
        at java.lang.Thread.run(Thread.java:744)

    Audio output stopped

    then when I add the 'Add URL stream' and select play:
    SourceURL registered.
    CommandVideo: gst-launch-1.0 rtmpsrc location="rtmp://localhost/outp/test" ! decodebin ! videoconvert ! videoscale ! videorate ! video/x-raw, format=RGB, framerate=30/1, width=800, height=480 ! videoconvert ! tcpclientsink port=38068
    CommandAudio: gst-launch-1.0 rtmpsrc location="rtmp://localhost/outp/test" ! decodebin ! audioresample ! audioconvert ! audio/x-raw, format=S16BE, channels=2, rate=44100 ! audioconvert ! tcpclientsink port=52363

    hope this helps

    Cheers,
    RJ

     
  • Anonymous

    Anonymous - 2014-05-05

    Originally posted by: soylent...@gmail.com

    Hi RJ,
    thanks for the feedback :)
    I will update your name in About/infos of WS, of course ;)
    Can you please test this command from a terminal (While your streaming server is running):

    First there is the video part:

    $ gst-launch-1.0 -v rtmpsrc location="rtmp://Your-RTMP-Stream-Source" ! decodebin ! videoconvert ! videoscale ! videorate ! video/x-raw, format=RGB, framerate=25/1, width=720, height=480 ! videoconvert ! autovideosink

    ... and see if the video window pops up displaying your stream ...
    If not, please post any errors ...

    Second, terminate the previous command with CTRL+C and fire the audio part:

    $ gst-launch-1.0 -v rtmpsrc location="rtmp://Your-RTMP-Stream-Source" ! decodebin ! audioresample ! audioconvert ! audio/x-raw, format=S16BE, channels=2, rate=44100 ! audioconvert ! autoaudiosink

    ... and check if the audio start playing ...
    If not, please post any errors ...

    Thanks a lot !!!
    karl.

     
  • Anonymous

    Anonymous - 2014-05-13

    Originally posted by: soylent...@gmail.com

    Hi RJ,
    in this testing jar i tried to implement avconv or ffmpeg backends to grab rtmp and rtsp:

    https://drive.google.com/file/d/0BxkZ_wh6t7jbcFh6YVdwQ0JTMG8/edit?usp=sharing

    Now if you switch between backends in the URL Stream-Panel, the command will follow the right choice.
    Let me know.
    thanks.
    karl

     
  • Anonymous

    Anonymous - 2014-05-14

    Originally posted by: rjvis...@gmail.com

    Hi Karl,

    Thanks!
    I did not have the time yet to try these out.
    I'll be ablemto get to it this weekend and let you know.
    I'm sure the option to use the different backends is going to be helpful.
    Cheers,
    RJ

     
  • Anonymous

    Anonymous - 2014-05-14

    Originally posted by: soylent...@gmail.com

    Thanks RJ,
    there is no hurry ... :)
    I'm the sick one .... :D
    Leave this testing at the end of the list ... You already gave me a lot of very useful feedbacks.
    Have a good day.
    karl

     
  • Anonymous

    Anonymous - 2014-05-18

    Originally posted by: skickm...@gmail.com

    Hi Karl,

    Great progress!
    The ffmeg-launch (GStreamer backend) did not work on my system.
    The AVConv does!

    Here's the response when using the GStreamer backend starting the playback and stopping the playback after no video is visible:

    SourceURL registered.
    CommandVideo: gst-launch-1.0 rtmpsrc location="rtmp://localhost/outp/test" ! decodebin ! videoconvert ! videoscale ! videorate ! video/x-raw, format=RGB, framerate=30/1, width=800, height=480 ! videoconvert ! tcpclientsink port=49283
    CommandAudio: gst-launch-1.0 rtmpsrc location="rtmp://localhost/outp/test" ! decodebin ! audioresample ! audioconvert ! audio/x-raw, format=S16BE, channels=2, rate=44100 ! audioconvert ! tcpclientsink port=47955
    May 18, 2014 2:12:14 PM webcamstudio.media.renderer.Capturer$2 run
    SEVERE: null
    java.net.SocketException: Socket closed
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
        at java.net.ServerSocket.implAccept(ServerSocket.java:530)
        at java.net.ServerSocket.accept(ServerSocket.java:498)
        at webcamstudio.media.renderer.Capturer$2.run(Capturer.java:127)
        at java.lang.Thread.run(Thread.java:744)

    May 18, 2014 2:12:14 PM webcamstudio.media.renderer.Capturer$1 run
    SEVERE: null
    java.net.SocketException: Socket closed
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
        at java.net.ServerSocket.implAccept(ServerSocket.java:530)
        at java.net.ServerSocket.accept(ServerSocket.java:498)
        at webcamstudio.media.renderer.Capturer$1.run(Capturer.java:78)
        at java.lang.Thread.run(Thread.java:744)

    URL Video Cleared ...
    URL Audio Cleared ...

    I switched the backend to AVConv and got this (again starting video playback, getting video and stopping the video playback)

    CommandVideo: avconv -v 0 -vsync cfr -i "rtmp://localhost/outp/test" -an -ss 0 -s 800x480 -f rawvideo -vcodec rawvideo -pix_fmt rgb24 -r 30 tcp://127.0.0.1:35085
    CommandAudio: avconv -v 0 -i "rtmp://localhost/outp/test" -vn -ss 0 -ar 44100 -ac 2 -f s16be tcp://127.0.0.1:34958
    URL Video accepted...
    URL Audio accepted...
    Start Video ...
    Start Audio ...
    URL Video Cleared ...
    URL Audio Cleared ...

    So this totally worked.

    Thanks!!

    I'll do some more experiments with this set-up and let you know if I find any other interesting aspects.

    Cheers,
    RJ

     
  • Anonymous

    Anonymous - 2014-05-18

    Originally posted by: skickm...@gmail.com

    hi Karl,

    one more update.
    I looked into the Gstreamer setup.
    first of all, my system does not have GStreamer 1.0. So that explains a first issue.
    I tried:
    $ sudo gst-launch-0.10 -v rtmpsrc location="rtmp://localhost/outp/test" ! decodebin ! videoconvert ! videoscale ! videorate ! video/x-raw, format=RGB, framerate=30/1, width=800, height=480 ! videoconvert ! autovideosink

    the result:
    WARNING: erroneous pipeline: no element "videoconvert"

    hope this helps.

    RJ

     
  • Anonymous

    Anonymous - 2014-05-19

    Originally posted by: soylent...@gmail.com

    Hi RJ,
    I'm happy that avconv did the work !!!
    I Remember that I had the same gstreamer 1.0 issue in OpenSuse, but don't remember how I got rid of it ...
    Maybe simply updating all gstreamer packages changing vendor to packman, but in ubuntu there isn't such repo ...
    Have you check all gstreamer1.0-plugins installation?
    Maybe a fresh install do the trick.
    I will try to search for the solution i found that time, and i will let you konw.
    Thanks.
    karl

     
  • Anonymous

    Anonymous - 2014-08-28

    Originally posted by: soylent...@gmail.com

    (No comment was entered for this change.)

    Status: Fixed

     
  • Anonymous

    Anonymous - 2014-09-08

    Originally posted by: H.imran....@gmail.com

    rtmp://$OPT:rtmp-raw=rtmp://31.220.0.194:1935/live playpath=sskk1 swfurl=http://www.flashtv.co/ePlayerr.swf token=%ZZri(nKa@#Z pageurl=http://www.flashtv.co/
    how can i play this type of url

     

Log in to post a comment.