chrippa / livestreamer

Command-line utility that extracts streams from various services and pipes them into a video player of choice. No longer maintained, use streamlink or youtube-dl instead.
http://livestreamer.io/
BSD 2-Clause "Simplified" License
3.88k stars 586 forks source link

Could not open stream #20

Closed mrshankly closed 11 years ago

mrshankly commented 11 years ago

I'm getting this error every time I try to open a stream: error: Could not open stream - Error while executing subprocess

I'm using Ubuntu 12.04 and have the last git of rtmpdump installed. It happens for both twitch.tv and own3d.tv streams.

codygarver commented 11 years ago

You have to compile rtmpdump from source. On Ubuntu, first install the dependencies. You can get all or most of all of them at once with $ sudo apt-get -y build-dep rtmpdump

Then in a terminal in your home directory, issue:

$ git clone git://git.ffmpeg.org/rtmpdump && cd rtmpdump/ && make && sudo make install

If it complains that it's missing something, track it down using $ apt-cache search package-name

or packages.ubuntu.com

codygarver commented 11 years ago

Also make sure you have vlc installed, because that's the default player it looks for and will fail if it does not find it. You can also change it to mplayer in a config file as it talks about in the README.

mrshankly commented 11 years ago

Tried to reinstall rtmpdump, everything went fine, but I'm still getting the same error:

$ livestreamer http://www.twitch.tv/koreyah
[cli][info] Found matching plugin justintv for URL http://www.twitch.tv/koreyah
Found streams: 240p, 360p, 480p, 720p, best, iphonehigh, iphonelow, live
$ livestreamer http://www.twitch.tv/koreyah best
[cli][info] Found matching plugin justintv for URL http://www.twitch.tv/koreyah
[cli][info] Opening stream: best
error: Could not open stream - Error while executing subprocess

Same error with mplayer:

$ livestreamer -p mplayer http://www.twitch.tv/koreyah best
[cli][info] Found matching plugin justintv for URL http://www.twitch.tv/koreyah
[cli][info] Opening stream: best
error: Could not open stream - Error while executing subprocess

Yes, vlc is installed:

$ vlc --version
VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
VLC version 2.0.3 Twoflower (2.0.2-93-g77aa89e)
Compiled by buildd on roseapple.buildd (Jul 24 2012 22:39:41)
Compiler: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License;
see the file named COPYING for details.
Written by the VideoLAN team; see the AUTHORS file.

Everything worked fine before, but my version of rtmpdump didn't support the jtv token, and since the update I'm getting that error. The older version of rtmpdump was installed from the repositories with just sudo apt-get install rtmpdump. I also removed it before installing the new version.

codygarver commented 11 years ago

Is livestreamer up to date? It got some fixes a few hours ago.

$ git clone git://github.com/niallm90/livestreamer.git && cd livestreamer && sudo python setup.py install

mrshankly commented 11 years ago

Yeah, that's the first thing I did when I got the error.

codygarver commented 11 years ago

That's really weird, I only recently got it working for myself. Sorry I couldn't help, hopefully the author can soon.

chrippa commented 11 years ago
  1. Check what happens when you run rtmpdump without any arguments. Any linker errors or segfault?
  2. Run livestreamer with the --errorlog option and paste the output from the file specified here.
  3. Run livestreamer with the --cmdline option and paste the output.
mrshankly commented 11 years ago

When I run rtmpdump without any arguments I get this:

$ rtmpdump
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-THp1MI/pkcs11: No such file or directory
ERROR: You must specify a hostname (--host) or url (-r "rtmp://host[:port]/playpath") containing a hostname

livestreamer with the --errorlog option:

RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-THp1MI/pkcs11: No such file or directory
Connecting ...
INFO: Connected...
ERROR: Closing connection: NetStream.Play.Failed
ERROR: You must specify a hostname (--host) or url (-r "rtmp://host[:port]/playpath") containing a hostname

livestreamer with the --cmdline option:

$ livestreamer --cmdline http://www.twitch.tv/dreadztv best
[cli][info] Found matching plugin justintv for URL http://www.twitch.tv/dreadztv
/usr/local/bin/rtmpdump --swfUrl=http://www.justin.tv/widgets/live_embed_player.swf 
--jtv=c99a9b9670101edb17b01d45533436aad5979a7a:{"swfDomains": ["justin.tv", "jtvx.com", "xarth.com", 
"twitchtv.com", "twitch.tv", "newjtv.com", "jtvnw.net", "wdtinc.com", "imapweather.com", "facebook.com", 
"starcrafting.com"], "streamName": "jtv__bvgGDxvivLVuKew", "expiration": 1345820875.5792429, "server": "lhr01-
video6-1"} --flv=- --live --rtmp=rtmp://199.9.255.138/app/jtv__bvgGDxvivLVuKew --swfsize=654125 
--swfhash=56016ab4a5984301972b959234e69b3f2605da89807b73f4114dc75226a0d287
chrippa commented 11 years ago

Hmm, the command line you posted works fine here.

It might be a long shot, but your rtmpdump could be linking with the Ubuntu version of librtmp. You can see if this is the case when you type "ldd /usr/local/bin/rtmpdump". If it lists the librtmp in /usr/lib instead of /usr/local/lib then that's probably the issue.

mrshankly commented 11 years ago

Looks like you're right:

$ ldd /usr/local/bin/rtmpdump
linux-gate.so.1 =>  (0xb77c6000)
librtmp.so.0 => /usr/lib/i386-linux-gnu/librtmp.so.0 (0xb7795000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75f0000)
libgnutls.so.26 => /usr/lib/i386-linux-gnu/libgnutls.so.26 (0xb752b000)
libgcrypt.so.11 => /lib/i386-linux-gnu/libgcrypt.so.11 (0xb74a6000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7490000)
/lib/ld-linux.so.2 (0xb77c7000)
libtasn1.so.3 => /usr/lib/i386-linux-gnu/libtasn1.so.3 (0xb747e000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7463000)
libp11-kit.so.0 => /usr/lib/i386-linux-gnu/libp11-kit.so.0 (0xb7450000)
libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xb744b000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7446000)

How can I fix it tho?

chrippa commented 11 years ago

Well, you can just remove the librtmp package, but if that causes other programs that may depend on the library to be removed aswell then maybe you could just move the librtmp files in /usr/lib out of the way see if it helps. You might need to recompile rtmpdump though.

mrshankly commented 11 years ago

When I moved the librtmp files in /usr/lib out of the way, rtmpdump wouldn't run, even after recompiling. After that I copied the librtmp files from /usr/local/lib to /usr/lib and it worked.

Everything is running fine now. Thanks a lot for the help.

soppen commented 11 years ago

I had the same issue. When I recompiled rtmpdump I noticed in the log that "cp librtmp.so.0 /usr/local/lib" but in "ldd /usr/local/bin/rtmpdump" it says "librtmp.so.0 => /usr/lib/librtmp.so.0" so I: sudo cp /usr/local/lib/librtmp.so.0 /usr/lib/

Working nicely now :) Running Debian btw, and I had this error: ERROR: Closing connection: NetStream.Play.Failed