Posted by perandre on February 10, 2009 at 12:30pm
| Project: | Embedded Media Field |
| Version: | 6.x-2.x-dev |
| Component: | Embedded Video Field |
| Category: | feature request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | closed (fixed) |
| Issue tags: | emfield, Flowplayer, rtmp |
Issue Summary
The ablilty to insert a url from an adobe streaming server (rtmp://example.com/myvideo.flv) would be a very nice (and needed) feature for a pro video site.
Comments
#1
What video player supports rtmp?
#2
@Alex UA: Use the module flvmediaplayer (jw player), and your cool. Flowplayer also works.
#3
Flowplayer supports RTMP streaming. All we'd need to do is add the rtmp:// protocol to the compatible list of Custom URLs, and Flowplayer would be used to stream the RTMP video.
#4
wow, nice! let's do that, then :D anyone have an example url i can use to test? i can work on this later this week.
#5
@aaron : you can use 'rtmp://video1.advid.tv/druptest' as 'netConnectionUrl' and 'Extremists.flv' and 'mp4:Extremists.m4v' as filenames.
Don't forget to add rtmp plugin to flowplayer config. Do you think it could be a good idea to add a specific provider for RTMP streams ?
Thank you.
#6
You can find an example of RTMP streaming through Flowplayer here:
http://flowplayer.org/plugins/streaming/rtmp.html
I'm not entirely 100% sure, but I think the latest version of Flowplayer supports automatic initialization of the RTMP when it sees the rtmp:// protocal. So you might be able to just use:
<?php$output = theme('flowplayer', 'rtmp://cyzy7r959.rtmphost.com/flowplayer');
?>
#7
Rob, I don't think it would work. As I said before, you need to set 'netConnectionUrl' to the streaming server application root. Then set 'url' parameter to desired filename to stream.
From your link :
netConnectionUrl : The RTMP URL used to connect to the server app. Required if not specified in the plugin.
url : The name of the stream. For h.264 encoded files, use following format: mp4:stream.mp4. For audio files use mp3:audio.mp3. NOTE: With Adobe's Flash Communication Server the stream name does not include the file extension, for example mp3:audio, or mystream.
Actually, I already tried sth like 'rtmp://video1.advid.tv/druptest/Extremists.flv' but it does not work with current modules.
I'd really like to have some kind of 'rtmp-flowplayer' provider ;)
#8
Ah, that makes sense. So it might end up looking more like:
<?php$output = theme('flowplayer', array(
'clip' => array(
'provider' => 'rtmp',
),
'plugins' => array(
'rtmp' => array(
'netConnectionUrl' => 'rtmp://flowplayer.org:1935/fastplay',
),
),
));
?>
... In one of the 3.1.3 changelogs though, it read:
Not sure if that means it switches the URL to the netConnectionUrl or not. Worth a try :-) .
#9
It fails here. Don't know how to make this work. No idea about URL may look like in this case :(
#10
Check this out.....
<?php$output .= theme('flowplayer', array(
'clip' => array(
'provider' => 'rtmp',
'url' => 'Extremists',
),
'plugins' => array(
'rtmp' => array(
'url' => 'flowplayer.rtmp.swf',
'netConnectionUrl' => 'rtmp://video1.advid.tv/druptest',
),
),
));
?>
Not sure how this would translate from Embedded Media Field Custom URL though..... rtmp://video1.advid.tv/druptest/Extremists.flv?
#11
I think your code is right Rob. Also, URL schema 'rtmp://HOST/APPLICATION/' is always correct so your Custom URL could be easily interpreted by emfield.
Once again, another way to achieve this could be with a new provider. aaron ?
#12
Hi I am trying to make flowplayer module to work with rtmp and I stepped into this thread.
I put the latest versions of flowplayer and rtmp plugin in the module folder and after trying various things I found out that:
the code
'rtmp' => array('url' => 'flowplayer.rtmp.swf'
)
does not work for me. It does not find the plugin.
Then I have tried to give the complete URL like:
'url' => 'http://mydomain/sites/all/modules/flowplayer/flowplayer/flowplayer.rtmp.swf'And still does not find the plugin.
Then I moved the plugin outside the modules directory and inside /sites/all/library/floplayer and gave the complete URL:
'url' => 'http://mydomain/sites/all/library/flowplayer/flowplayer.rtmp.swf'This way it works. I don't understand why it is not able to load the plugin if it is inside the module directory.
#13
Was there ever a solution to this? I'm hoping that the Embedded Video Field will recognize rtmp:// as well...
#14
I just committed an experimental test to DRUPAL-6--2 if someone can test that and let me know if it works, please...
#15
should have done it w/ a patch, i know... sorry about that...
#16
so i'm having the same problem as at #12. seems like the flowplayer should have a way to keep track of its own plugins? also, when i move flowplayer to libraries/ the error message disappears, but still no stream. maybe my approach of basename($url) and dirname($url) isn't correct? would appreciate another look over.
#17
#18
#598590: Automatic plugin URL loading would be very nice.
#19
Thanks to the update Aaron made yesterday (Feb 4), now FlowPlayer recognizes its rtmp plugin. I can see it in the activity window of Safari which shows all files loaded.
However, zzz_custom_url.inc missed a parameter for clip, so I added it. The missing parameter was "provider" inside "clip" (refer to the example code on http://flowplayer.org/plugins/streaming/rtmp.html). I set it as "rtmp" since it is a generic provider I thought. I attached my version of zzz_custom_url.inc, so please take a look at it. My amendment is on line 125 and 126. Note that you remove the file extension ".txt" before you save it to the emfield directory.
I also want to tell that current version of Emfield may have a problem with "url" parameter handling.
There is a similar one, "mp3", but I have not tested with it. However I suppose Emfield makes the same mistake.
(It may be better to provide two fields, one for netConnectionUrl and another for clip url, rather than Emfield accept only one field value and divides the url into two. Any thought?)
After all, my combo of Drupal + Emfield + Flowplayer + CDN still doesn't work. It shows a inline player box, but there is no player button when I move my mouse pointer over the player.
#20
Thanks for helping debug, aiwata. Could you try to get it working with straight HTML and JavaScript so we can find out if it would actually work at all? If we find out what parameters are needed, then we could push them into emfield.
<?phpfunction theme_emvideo_zzz_custom_url_embedded_video($type, $url, $width, $height, $autoplay = FALSE, $field = NULL, $item = NULL, $options = array()) {
if (count($parts = explode('rtmp://', $url)) == 2) {
if (module_exists('flowplayer')) {
$config = array(
'clip' => array(
'autoPlay' => $autoplay,
'url' => basename($url),
// Akishige Iwata added the following.
'provider' => 'rtmp'
),
'plugins' => array(
'rtmp' => array(
'url' => url(drupal_get_path('module', 'flowplayer') .'/flowplayer/flowplayer.rtmp.swf', array('absolute' => TRUE)),
'netConnectionUrl' => dirname($url),
),
),
);
$attributes = array(
'style' => "width:{$width}px;height:{$height}px;",
);
return theme('flowplayer', $config, 'emvideo-zzz-custom-url-embedded-video', $attributes);
}
}
?>
#21
Rob Loach suggested to change the url parameter under rtmp plugin, and now Emfield plays streamed videos. I paste just the part of zzz_custom_url.inc. The change is to add base_path() before drupal_get_path(). Please take a look at the code.
<?phpfunction theme_emvideo_zzz_custom_url_embedded_video($type, $url, $width, $height, $autoplay = FALSE, $field = NULL, $item = NULL, $options = array()) {
if (count($parts = explode('rtmp://', $url)) == 2) {
if (module_exists('flowplayer')) {
$config = array(
'clip' => array(
'autoPlay' => $autoplay,
'url' => basename($url),
'provider' => 'rtmp'
),
'plugins' => array(
'rtmp' => array(
'url' => url(base_path() . drupal_get_path('module', 'flowplayer') . '/flowplayer/flowplayer.rtmp.swf', array('absolute' => TRUE)),
'netConnectionUrl' => dirname($url),
),
),
);
$attributes = array(
'style' => "width:{$width}px;height:{$height}px;",
);
return theme('flowplayer', $config, 'emvideo-zzz-custom-url-embedded-video', $attributes);
}
}
...
?>
Although Emfield on my site now plays streamed videos, Emfield still has some problems with handling the source url, I think.
#22
that makes no sense! url() called with absolute should automatically prepend base_path(). but i'll commit this anyway, since it shouldn't harm things.
#23
that's in there; please let me know if it works so we can mark this issue fixed.
thanks,
aaron
#24
Success report.
I updated Emfield to 6.x-2.x-dev (2010-Feb-19), and set the source url as "http://e1p2.simplecdn.net/flowplayer/eye-pseudo.mp4". The player worked.
#25
excellent! thanks; marking this fixed then.
#26
Automatically closed -- issue fixed for 2 weeks with no activity.
#27
zzz_custom_url.inc > wrong rtmp url render:
<?phpurl(base_path() . drupal_get_path('module', 'flowplayer') . '/flowplayer/flowplayer.rtmp.swf', array('absolute' => TRUE))
?>
It should be:
<?phpurl(drupal_get_path('module', 'flowplayer') . '/flowplayer/flowplayer.rtmp.swf', array('absolute' => TRUE))
?>
#28
url() does take a $path relative from the Drupal base path.
#29
Hi, i'm newbe on drupal world, i was reading a lots content in this site about how to use red5 and flowplayer3, also i try with jw mediaplayer 4, but i don't know why no work for me, i have a block with swf content like this [swf file="sample.flv" stream="rtmp://192.168.1.2/oflaDemo/" params="width=630&&height=324"] but don't work , when i test with red5 sample its work, :( somebody can help me??
#30
Haha. I got bit by the base path bug this morning and fixed it independently. Please commit this soon. Spent 6 hours figuring out the problem.
#31
So, set the issue to RTBC? :-)
#32
committed, thanks @Rob Loach & @thehong!
#33
Hey, check out the latest, robust and affordable streaming solution!
http://www.evostream.com
(guaranteed clean site)
Check it out!
#34
Automatically closed -- issue fixed for 2 weeks with no activity.
#35
Hello Everyone,
i have a script that is supposed to stream video and make it available to chat users
I have installed red5 as required by the script.
Now i have to alter a script:
< Pref Data = "rtmp://some_flash_hosting_site/www_some_site_com" />
My red5 is installed under this pass in the root server : /usr/src/red5/webapps
I am not sure on how to place that link : rtmp://some_flash_hosting_site/www_some_site_com
Any help is appreciated.
Thank you in advance.