Streaming from S3: spaces in object names

I am trying out streaming from S3 at the moment and noticed one thing I want to ask you about. Whenever an s3 object has a space in its name it fails to stream. I get a “Stream not found” error.

The connection strings are as follows:

Streamer: rtmp:///vods3

File: flv:amazons3//name with spaces.flv

However, when trying to stream object without space in the name it works fine - both my files or wowza example files (Streamer.mov, .mp3 and m4v).

Am I missing something ?

This will work:

File: flv:amazons3//name+with+spaces.flv

Richard

Hmm. Try these two links, with and without space.

space, stream not found

mp4:amazons3/com.lakesidetechnical.content/otto lake.m4v

space replaced, okay

mp4:amazons3/com.lakesidetechnical.content/otto+lake.m4v

Richard

What is the “streamer” Flashvar in JW player?

Richard

I’m testing. Does seem to be a problem with JW player, which does have a few quirks. I’ll dig into it more.

Richard

It did not work unfortunately. Still say “steram not found”. All permissions are correct. It should work with “+” instead of space but it does not :frowning:

Got “stream not found” for both. I am using jw player 4.3. Will investigate the player side of things now.

yeah its a flashvar that specifies streaming server: protocol, server address and a bucket - for S3 case

found this:

http://www.longtailvideo.com/support/forum/Bug-Reports/16041/Spaces-not-allowed-in-filenames-even-URL-encoded-

Ok here is the solution that worked for me:

I am using PHP and JW Player 4.3. The problem is due to JW player not encoding url when rtmp protocol is used (specifically in RTMPTModel.as file). So to fix the problem with playing files that have spaces you need to either:

  • Replace spaces with “+” and urlencode() the whole url after that. For example: [PHP]urlencode(“mp4:amazons3//file+name+with+spaces.m4v”);[/PHP]

  • Double urlencode() the whole url. For example: [PHP]urlencode(urlencode(“mp4:amazons3//file name with spaces.m4v”));[/PHP]

    Anton