Page 3 of 5

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Tue Jan 08, 2013 5:00 am
by jhb50
Version 8 now posted, to fix titles and thumb extract, and add option to generate urls.

With V8 the groovy also offers a parameter genurls=1 which will cause it to generate the stream urls based on the currently known stream parameters rather than extract them with each refresh (default genurls=0). For 350 videos this reduces the url extract refresh time from 22 minutes to 1 second, however it will fail should the current stream parameters change

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Tue Jan 08, 2013 7:59 am
by mqojdn
Wouldn't it be better to have that URL generation ON by default? Thus no useless polling of Beeg servers that may lead to adding encryption and what not?
And if they would change something on the line, users would be able to disable it until you post an updated version.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Tue Jan 08, 2013 2:57 pm
by gpsis
So what is the syntax for the genurl option? Where does it go? Sorry but we're all not programmers!

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Tue Jan 08, 2013 9:21 pm
by jhb50
http://beeg.com/section/long-videos/1?start=1&for=50&genurls=1
First parameter always starts with ?, subsequents with &.

I will leave genurls=0 as the default because that way it will always work.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Tue Jan 08, 2013 9:58 pm
by mqojdn
Here is a nifty idea.
The first time extractUrl is called:
- generate the link
- Add additionalInfo.put("generated", "true")
- setExpiresImmediately(true);

So when the file is actually played, Serviio would call extractUrl for a second time:
- check if getAdditionalInfo().get("generated") == true
- if so, load the page and get the link.

That way it would be fast and would always work. And no useless polling.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 12:09 am
by gpsis
Thanks for the syntax...is this the proper use?

http://beeg.com/tag/blonde/1 &genurls=1

...or 0 as you suggest/

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 12:19 am
by jhb50

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 1:51 am
by gpsis
OK thanks I'll keep you posted

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 5:02 am
by jhb50
mqojdn wrote:Here is a nifty idea.
The first time extractUrl is called:
- generate the link
- Add additionalInfo.put("generated", "true")
- setExpiresImmediately(true);

So when the file is actually played, Serviio would call extractUrl for a second time:
- check if getAdditionalInfo().get("generated") == true
- if so, load the page and get the link.

That way it would be fast and would always work. And no useless polling.


ABSOLUTELY BRILLIANT!!
In fact I think this might be applicable to all plugins as a solution to the problem of refreshes taking so long and defer the actual extracts to playback time.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 5:15 am
by jhb50
As suggested by mqojdn, Version 9 has been posted which eliminates the genurls option and only extracts the urls if and when when the videos played.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 9:02 am
by mqojdn
jhb50 wrote:In fact I think this might be applicable to all plugins as a solution to the problem of refreshes taking so long and defer the actual extracts to playback time.


Beeg has the advantage that all the streams are exactly the same, and that it's not that important if those are 9 or 12 minutes long. But that wouldn't work as well for other streams.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 5:17 pm
by zip
jhb50 wrote:
mqojdn wrote:Here is a nifty idea.
The first time extractUrl is called:
- generate the link
- Add additionalInfo.put("generated", "true")
- setExpiresImmediately(true);

So when the file is actually played, Serviio would call extractUrl for a second time:
- check if getAdditionalInfo().get("generated") == true
- if so, load the page and get the link.

That way it would be fast and would always work. And no useless polling.


ABSOLUTELY BRILLIANT!!
In fact I think this might be applicable to all plugins as a solution to the problem of refreshes taking so long and defer the actual extracts to playback time.

this already happens when you set expiresImmediatelly to true (unless I didn't get what you mean). It calls extractUrl just before playing to get the latest URL

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 6:18 pm
by gpsis
Used V8 with the following syntax and (for me) it didn't work.
http://beeg.com/tag/blonde/1?genurl=1

Used V9 without the ?genurl=1 flag and still didn't work.
http://beeg.com/tag/blonde/1

Rebooted computer and media player after path updates just to be certain.

Guess I should have taken some programming classes back in the '70s!


Device: Sony Media Player SMP-N100

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Wed Jan 09, 2013 8:21 pm
by jhb50
What does doesn't work mean? Use the info under my signature to post debug log etc.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Thu Jan 10, 2013 7:41 am
by mqojdn
zip wrote:this already happens when you set expiresImmediatelly to true (unless I didn't get what you mean). It calls extractUrl just before playing to get the latest URL


The trick is that there are no online requests the first time extractUrl() is called.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Thu Jan 10, 2013 12:12 pm
by jhb50
mqojdn wrote:The trick is that there are no online requests the first time extractUrl() is called.

If it was only the first call, it would not be that big a deal. The point is that there will never be an online request, with the first call at Serviio startup or for every refresh, forced or as scheduled by default in the console. That's where the waste of resources on both the Serviio server and the source stream servers lies. The only on line request is made a playback time.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Sun Jan 13, 2013 5:27 pm
by totototo
Hi jhb50,

It seems Beg plugin does generate URl with several different servers: it may be due to some load balancing on the server side.
However, very often URL starting by http://01.007i.net do timeout with ffmpeg process (error 1), hence files can't be played.
When URL start with http://0.video.mystreamservice.com (or other initial digit), then ffmpeg connects properly and can process files.

Could the plugin do some test on URLs and generate the most responding ones?
Thanks!

PS: did figure that out after thinking I had transcoding issues with some (most) files and not others. see post there: viewtopic.php?f=7&t=8858&p=61146#p61146

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Mon Jan 14, 2013 5:09 am
by jhb50
You need to post a debug log. V9 of the plugin only generates urls to video.mystreamservice.com and will only get the link from the beeg if that link fails. Perhaps you did not restart Serviio after you loaded V9.

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Mon Jan 14, 2013 8:38 am
by totototo
Hi,

Here you go
  Code:
2013-01-14 09:19:56,690 DEBUG [PluginCompilerThread] Starting plugin Beeg.groovy compilation
2013-01-14 09:19:56,917 INFO  [PluginCompilerThread] Added Web Resouce plugin Beeg (Beeg.groovy), version: 9

2013-01-14 09:20:19,075 DEBUG [FeedItemUrlExtractor] Beeg: Finished extraction of url: ContentURLContainer [fileType=VIDEO, contentUrl=http://12.video.mystreamservice.com/480p/8899033.mp4, thumbnailUrl=http://cdn.anythumb.com/236x177-8899033.jpg, expiresImmediately=true, cacheKey=beeg480p, live=false, ]
2013-01-14 09:20:19,075 DEBUG [WebResourceParser] Added resource item 7: 'In the kitchen' (http://12.video.mystreamservice.com/480p/8899033.mp4)

2013-01-14 09:25:48,933 DEBUG [VideoDeliveryEngine] Found Format profile for transcoded file http://12.video.mystreamservice.com/480p/8899033.mp4: AVC_TS_MP_HD_AC3_ISO
2013-01-14 09:25:48,933 DEBUG [VideoDeliveryEngine] Retrieving resource information for item 1000000030008624 and profile Generic DLNA profile

2013-01-14 09:26:17,545 DEBUG [VideoDeliveryEngine] Delivering file 'http://12.video.mystreamservice.com/480p/8899033.mp4' using transcoding
2013-01-14 09:26:17,546 DEBUG [AbstractTranscodingDeliveryEngine] No other client uses transcoding job of file 'transcoding-temp-1000000030014122-1-ORIGINAL.stf', will stop the job
2013-01-14 09:26:17,546 DEBUG [AbstractTranscodingDeliveryEngine] Stopping previous transcoding job of file 'transcoding-temp-1000000030014122-1-ORIGINAL.stf'
2013-01-14 09:26:17,546 DEBUG [ProcessExecutor] Stopping external process: Thread[Thread-55,5,main]
2013-01-14 09:26:17,547 DEBUG [ProcessUtils] Sending kill -9 to the Unix process: 444
2013-01-14 09:26:17,547 DEBUG [ProcessExecutor] Starting kill -9 444
2013-01-14 09:26:17,589 WARN  [ProcessExecutor] Process /Serviio.app/Contents/Resources/Java/../../MacOS/ffmpeg has a return code of 137! This is a possible error.
2013-01-14 09:26:17,590 DEBUG [TranscodingJobListener] Transcoding finished; successful: false
2013-01-14 09:26:17,594 DEBUG [TranscodingJobListener] Transcoding finished; successful: true
2013-01-14 09:26:17,653 DEBUG [TranscodingJobListener] Deleted temp file '/var/folders/zt/_0b272cj20lfyfpnp8h7knrh0000gn/T/Serviio/transcoding-temp-1000000030014122-1-ORIGINAL.stf': true
2013-01-14 09:26:17,653 DEBUG [AbstractTranscodingDeliveryEngine] No suitable transcoding job exists yet, start one for client 'IPAddress=/192.168.3.11, Profile=Generic DLNA profile'
2013-01-14 09:26:17,654 DEBUG [VideoDeliveryEngine] Extracting new URL for the expired feed item
2013-01-14 09:26:17,654 DEBUG [FeedItemUrlExtractor] Beeg: Starting extraction of url for item: In the kitchen
2013-01-14 09:26:17,654 DEBUG [FeedItemUrlExtractor] Beeg: Extracting url
2013-01-14 09:26:18,103 DEBUG [FeedItemUrlExtractor] Beeg: Finished extraction of url: ContentURLContainer [fileType=VIDEO, contentUrl=http://01.007i.net/480p/8899033.mp4, thumbnailUrl=http://cdn.anythumb.com/236x177-8899033.jpg, expiresImmediately=true, cacheKey=beeg_8899033, live=false, ]
2013-01-14 09:26:18,103 DEBUG [VideoDeliveryEngine] Successfully set new URL for the feed item
2013-01-14 09:26:18,104 DEBUG [FFMPEGWrapper] Invoking FFmpeg to transcode video file: http://01.007i.net/480p/8899033.mp4
2013-01-14 09:26:18,104 DEBUG [ProcessExecutor] Starting /Serviio.app/Contents/Resources/Java/../../MacOS/ffmpeg -analyzeduration 10000000 -fflags +genpts -threads auto -i http://01.007i.net/480p/8899033.mp4 -y -copyts -c:v copy -bsf:v h264_mp4toannexb -c:a ac3 -b:a 384k -ac 2 -map 0:0 -map 0:1 -sn -f mpegts /var/folders/zt/_0b272cj20lfyfpnp8h7knrh0000gn/T/Serviio/transcoding-temp-1000000030007515-1-ORIGINAL.stf
2013-01-14 09:26:18,291 WARN  [ProcessExecutor] Process /Serviio.app/Contents/Resources/Java/../../MacOS/ffmpeg has a return code of 1! This is a possible error.
2013-01-14 09:26:18,295 DEBUG [TranscodingJobListener] Transcoding finished; successful: false
it seems initial web ressource parser is correct, but then when actual playback is requested something goes wrong, file is polled again from sever, and this time with "wrong" server.
Does it help?

Re: BEEG - AN ADULT STREAMS VIDEO WEB RESOURCE

PostPosted: Mon Jan 14, 2013 3:53 pm
by jhb50
The plugin is doing as it should. It is generating the default url at refresh time but loading the url that beeg says it wants you to use at playback time. I will add a usegen=1 option which will ignore the new beeg url and always use the default url to play the files.