<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>sk89q's blog - Latest Comments</title><link>http://sk89q.disqus.com/</link><description></description><atom:link href="https://sk89q.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Sun, 16 Sep 2018 12:35:35 -0000</lastBuildDate><item><title>Re: WorldEdit selection API on Bukkit</title><link>http://www.sk89q.com/2013/03/worldedit-selections-for-bukkit-plugins/#comment-4098553805</link><description>&lt;p&gt;I have this error:&lt;br&gt;[18:34:17 ERROR]: [WorldEdit] An unexpected error while handling a WorldEdit command&lt;br&gt;java.lang.AbstractMethodError: null&lt;br&gt;        at com.sk89q.worldedit.extent.AbstractDelegateExtent.getFullBlock(&lt;a href="http://AbstractDelegateExtent.java" rel="nofollow noopener" target="_blank" title="AbstractDelegateExtent.java"&gt;AbstractDelegateExtent.java&lt;/a&gt;:75) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.AbstractDelegateExtent.getFullBlock(&lt;a href="http://AbstractDelegateExtent.java" rel="nofollow noopener" target="_blank" title="AbstractDelegateExtent.java"&gt;AbstractDelegateExtent.java&lt;/a&gt;:75) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.AbstractDelegateExtent.getFullBlock(&lt;a href="http://AbstractDelegateExtent.java" rel="nofollow noopener" target="_blank" title="AbstractDelegateExtent.java"&gt;AbstractDelegateExtent.java&lt;/a&gt;:75) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.AbstractDelegateExtent.getFullBlock(&lt;a href="http://AbstractDelegateExtent.java" rel="nofollow noopener" target="_blank" title="AbstractDelegateExtent.java"&gt;AbstractDelegateExtent.java&lt;/a&gt;:75) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.ChangeSetExtent.setBlock(&lt;a href="http://ChangeSetExtent.java" rel="nofollow noopener" target="_blank" title="ChangeSetExtent.java"&gt;ChangeSetExtent.java&lt;/a&gt;:63) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(&lt;a href="http://AbstractDelegateExtent.java" rel="nofollow noopener" target="_blank" title="AbstractDelegateExtent.java"&gt;AbstractDelegateExtent.java&lt;/a&gt;:80) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.MaskingExtent.setBlock(&lt;a href="http://MaskingExtent.java" rel="nofollow noopener" target="_blank" title="MaskingExtent.java"&gt;MaskingExtent.java&lt;/a&gt;:69) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(&lt;a href="http://AbstractDelegateExtent.java" rel="nofollow noopener" target="_blank" title="AbstractDelegateExtent.java"&gt;AbstractDelegateExtent.java&lt;/a&gt;:80) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extent.validation.BlockChangeLimiter.setBlock(&lt;a href="http://BlockChangeLimiter.java" rel="nofollow noopener" target="_blank" title="BlockChangeLimiter.java"&gt;BlockChangeLimiter.java&lt;/a&gt;:87) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.EditSession.setBlock(&lt;a href="http://EditSession.java" rel="nofollow noopener" target="_blank" title="EditSession.java"&gt;EditSession.java&lt;/a&gt;:445) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.EditSession.setBlock(&lt;a href="http://EditSession.java" rel="nofollow noopener" target="_blank" title="EditSession.java"&gt;EditSession.java&lt;/a&gt;:488) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.function.block.BlockReplace.apply(&lt;a href="http://BlockReplace.java" rel="nofollow noopener" target="_blank" title="BlockReplace.java"&gt;BlockReplace.java&lt;/a&gt;:53) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.function.visitor.RegionVisitor.resume(&lt;a href="http://RegionVisitor.java" rel="nofollow noopener" target="_blank" title="RegionVisitor.java"&gt;RegionVisitor.java&lt;/a&gt;:57) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.function.operation.Operations.completeBlindly(&lt;a href="http://Operations.java" rel="nofollow noopener" target="_blank" title="Operations.java"&gt;Operations.java&lt;/a&gt;:74) ~[?:?]&lt;br&gt;        at &lt;a href="http://com.sk89q.worldedit.command.composition.SelectionCommand.call" rel="nofollow noopener" target="_blank" title="com.sk89q.worldedit.command.composition.SelectionCommand.call"&gt;com.sk89q.worldedit.command...&lt;/a&gt;(&lt;a href="http://SelectionCommand.java" rel="nofollow noopener" target="_blank" title="SelectionCommand.java"&gt;SelectionCommand.java&lt;/a&gt;:84) ~[?:?]&lt;br&gt;        at &lt;a href="http://com.sk89q.worldedit.command.composition.SelectionCommand.call" rel="nofollow noopener" target="_blank" title="com.sk89q.worldedit.command.composition.SelectionCommand.call"&gt;com.sk89q.worldedit.command...&lt;/a&gt;(&lt;a href="http://SelectionCommand.java" rel="nofollow noopener" target="_blank" title="SelectionCommand.java"&gt;SelectionCommand.java&lt;/a&gt;:46) ~[?:?]&lt;br&gt;        at &lt;a href="http://com.sk89q.worldedit.util.command.composition.LegacyCommandAdapter.call" rel="nofollow noopener" target="_blank" title="com.sk89q.worldedit.util.command.composition.LegacyCommandAdapter.call"&gt;com.sk89q.worldedit.util.co...&lt;/a&gt;(&lt;a href="http://LegacyCommandAdapter.java" rel="nofollow noopener" target="_blank" title="LegacyCommandAdapter.java"&gt;LegacyCommandAdapter.java&lt;/a&gt;:52) ~[?:?]&lt;br&gt;        at &lt;a href="http://com.sk89q.worldedit.util.command.SimpleDispatcher.call" rel="nofollow noopener" target="_blank" title="com.sk89q.worldedit.util.command.SimpleDispatcher.call"&gt;com.sk89q.worldedit.util.co...&lt;/a&gt;(&lt;a href="http://SimpleDispatcher.java" rel="nofollow noopener" target="_blank" title="SimpleDispatcher.java"&gt;SimpleDispatcher.java&lt;/a&gt;:125) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.extension.platform.CommandManager.handleCommand(&lt;a href="http://CommandManager.java" rel="nofollow noopener" target="_blank" title="CommandManager.java"&gt;CommandManager.java&lt;/a&gt;:275) ~[?:?]&lt;br&gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]&lt;br&gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_181]&lt;br&gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_181]&lt;br&gt;        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_181]&lt;br&gt;        at com.sk89q.worldedit.util.eventbus.MethodEventHandler.dispatch(&lt;a href="http://MethodEventHandler.java" rel="nofollow noopener" target="_blank" title="MethodEventHandler.java"&gt;MethodEventHandler.java&lt;/a&gt;:58) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(&lt;a href="http://EventHandler.java" rel="nofollow noopener" target="_blank" title="EventHandler.java"&gt;EventHandler.java&lt;/a&gt;:73) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.util.eventbus.EventBus.dispatch(&lt;a href="http://EventBus.java" rel="nofollow noopener" target="_blank" title="EventBus.java"&gt;EventBus.java&lt;/a&gt;:187) ~[?:?]&lt;br&gt;        at &lt;a href="http://com.sk89q.worldedit.util.eventbus.EventBus.post" rel="nofollow noopener" target="_blank" title="com.sk89q.worldedit.util.eventbus.EventBus.post"&gt;com.sk89q.worldedit.util.ev...&lt;/a&gt;(&lt;a href="http://EventBus.java" rel="nofollow noopener" target="_blank" title="EventBus.java"&gt;EventBus.java&lt;/a&gt;:173) ~[?:?]&lt;br&gt;        at com.sk89q.worldedit.bukkit.WorldEditPlugin.onCommand(&lt;a href="http://WorldEditPlugin.java" rel="nofollow noopener" target="_blank" title="WorldEditPlugin.java"&gt;WorldEditPlugin.java&lt;/a&gt;:227) ~[?:?]&lt;br&gt;        at com.sk89q.bukkit.util.DynamicPluginCommand.execute(&lt;a href="http://DynamicPluginCommand.java" rel="nofollow noopener" target="_blank" title="DynamicPluginCommand.java"&gt;DynamicPluginCommand.java&lt;/a&gt;:54) ~[?:?]&lt;br&gt;        at org.bukkit.command.SimpleCommandMap.dispatch(&lt;a href="http://SimpleCommandMap.java" rel="nofollow noopener" target="_blank" title="SimpleCommandMap.java"&gt;SimpleCommandMap.java&lt;/a&gt;:141) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at org.bukkit.craftbukkit.v1_13_R1.CraftServer.dispatchCommand(&lt;a href="http://CraftServer.java" rel="nofollow noopener" target="_blank" title="CraftServer.java"&gt;CraftServer.java&lt;/a&gt;:694) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.PlayerConnection.handleCommand(&lt;a href="http://PlayerConnection.java" rel="nofollow noopener" target="_blank" title="PlayerConnection.java"&gt;PlayerConnection.java&lt;/a&gt;:1634) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.PlayerConnection.a(&lt;a href="http://PlayerConnection.java" rel="nofollow noopener" target="_blank" title="PlayerConnection.java"&gt;PlayerConnection.java&lt;/a&gt;:1469) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.PacketPlayInChat.a(&lt;a href="http://PacketPlayInChat.java" rel="nofollow noopener" target="_blank" title="PacketPlayInChat.java"&gt;PacketPlayInChat.java&lt;/a&gt;:45) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.PacketPlayInChat.a(&lt;a href="http://PacketPlayInChat.java" rel="nofollow noopener" target="_blank" title="PacketPlayInChat.java"&gt;PacketPlayInChat.java&lt;/a&gt;:1) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.PlayerConnectionUtils.a(SourceFile:10) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at java.util.concurrent.Executors$&lt;a href="http://RunnableAdapter.call" rel="nofollow noopener" target="_blank" title="RunnableAdapter.call"&gt;RunnableAdapter.call&lt;/a&gt;(Unknown Source) [?:1.8.0_181]&lt;br&gt;        at &lt;a href="http://java.util.concurrent.FutureTask.run" rel="nofollow noopener" target="_blank" title="java.util.concurrent.FutureTask.run"&gt;java.util.concurrent.Future...&lt;/a&gt;(Unknown Source) [?:1.8.0_181]&lt;br&gt;        at net.minecraft.server.v1_13_R1.SystemUtils.a(SourceFile:198) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.MinecraftServer.w(&lt;a href="http://MinecraftServer.java" rel="nofollow noopener" target="_blank" title="MinecraftServer.java"&gt;MinecraftServer.java&lt;/a&gt;:884) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.DedicatedServer.w(&lt;a href="http://DedicatedServer.java" rel="nofollow noopener" target="_blank" title="DedicatedServer.java"&gt;DedicatedServer.java&lt;/a&gt;:411) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at net.minecraft.server.v1_13_R1.MinecraftServer.v(&lt;a href="http://MinecraftServer.java" rel="nofollow noopener" target="_blank" title="MinecraftServer.java"&gt;MinecraftServer.java&lt;/a&gt;:819) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at &lt;a href="http://net.minecraft.server.v1_13_R1.MinecraftServer.run" rel="nofollow noopener" target="_blank" title="net.minecraft.server.v1_13_R1.MinecraftServer.run"&gt;net.minecraft.server.v1_13_...&lt;/a&gt;(&lt;a href="http://MinecraftServer.java" rel="nofollow noopener" target="_blank" title="MinecraftServer.java"&gt;MinecraftServer.java&lt;/a&gt;:717) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]&lt;br&gt;        at &lt;a href="http://java.lang.Thread.run" rel="nofollow noopener" target="_blank" title="java.lang.Thread.run"&gt;java.lang.Thread.run&lt;/a&gt;(Unknown Source) [?:1.8.0_181]&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">TheCalypso</dc:creator><pubDate>Sun, 16 Sep 2018 12:35:35 -0000</pubDate></item><item><title>Re: WorldEdit selection API on Bukkit</title><link>http://www.sk89q.com/2013/03/worldedit-selections-for-bukkit-plugins/#comment-3866792524</link><description>&lt;p&gt;yep&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thed Discover</dc:creator><pubDate>Sun, 22 Apr 2018 11:25:27 -0000</pubDate></item><item><title>Re: Spoofing a UDP packet in Python</title><link>http://www.sk89q.com/2008/10/spoofing-a-udp-packet-in-python/#comment-3787078221</link><description>&lt;p&gt;I am getting the following error when attempting to use the udp code snippet above...&lt;br&gt;AttributeError: 'module' object has no attribute 'Packet'&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeffrey L. Roberts</dc:creator><pubDate>Sun, 04 Mar 2018 15:42:17 -0000</pubDate></item><item><title>Re: PHP function to draw wrapped text</title><link>http://www.sk89q.com/2008/08/ttf-textbox-in-php/#comment-3691479355</link><description>&lt;p&gt;For those who are looking for the code, I've got a copy on github : &lt;a href="https://github.com/Dolu-/omfg/blob/master/inc/imagettftextboxopt.php" rel="nofollow noopener" target="_blank" title="https://github.com/Dolu-/omfg/blob/master/inc/imagettftextboxopt.php"&gt;https://github.com/Dolu-/om...&lt;/a&gt;&lt;br&gt;Btw thanks a lot to the author.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ludovic “Rubik” Lefebvre</dc:creator><pubDate>Thu, 04 Jan 2018 10:50:30 -0000</pubDate></item><item><title>Re: Introduction to PHP streams</title><link>http://www.sk89q.com/2010/04/introduction-to-php-streams/#comment-3660057848</link><description>&lt;p&gt;"I’m not a huge fan of cURL, because it has an awful interface in PHP". &lt;br&gt;The $opts array's structure is awfully similar to that of a cURL request so I'm not sure what you meant there. IMHO programmers use streams for very specific things, and usually find GET and POST requests are easier done with cURL (or at least people are used to doing them that way).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dark Cappuccino</dc:creator><pubDate>Wed, 13 Dec 2017 02:27:48 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3271643864</link><description>&lt;p&gt;You said " ...VLC does not yet offer native support for viewing RTMP streams)...." but it can play rtmp streamings without any problem since 3 years at least.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafael Linux User</dc:creator><pubDate>Mon, 24 Apr 2017 13:20:00 -0000</pubDate></item><item><title>Re: WorldEdit selection API on Bukkit</title><link>http://www.sk89q.com/2013/03/worldedit-selections-for-bukkit-plugins/#comment-3269086130</link><description>&lt;p&gt;HOW DO YOU GET THE LOCATIONS IN THE SELECTION THOUGH!?&amp;gt;!??!?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Zin</dc:creator><pubDate>Sat, 22 Apr 2017 17:30:56 -0000</pubDate></item><item><title>Re: WorldEdit selection API on Bukkit</title><link>http://www.sk89q.com/2013/03/worldedit-selections-for-bukkit-plugins/#comment-3118298441</link><description>&lt;p&gt;how do i download this with out getting viruses?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">King_Fury_Time</dc:creator><pubDate>Tue, 24 Jan 2017 19:15:50 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3095870917</link><description>&lt;p&gt;Hay All,&lt;br&gt;     Basically i am trying to find out an example of a command line of Gstreamer through which i can do video encoding into three different bit rates and then combine all these levels into one video.In this example we have different bit rates for audio and video but i want different bit rates for video to get 3 different qualities from one file.&lt;br&gt;         can anyone help me&lt;br&gt;Asghar&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Asghar</dc:creator><pubDate>Thu, 12 Jan 2017 10:59:17 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3057305157</link><description>&lt;p&gt;Lots of people already use nginx-rtmp so that's why I recommend it, plus it's free.&lt;/p&gt;&lt;p&gt;gstreamer is basically the de facto OSS framework for this kind of stuff, but you can't do much with its command line tools. You're going to have to find some program that uses the gstreamer API to do it. Here's some examples:&lt;/p&gt;&lt;p&gt;&lt;a href="https://sourceforge.net/projects/snowmix/" rel="nofollow noopener" target="_blank" title="https://sourceforge.net/projects/snowmix/"&gt;https://sourceforge.net/pro...&lt;/a&gt;&lt;br&gt;&lt;a href="https://github.com/timvideos/gst-switch" rel="nofollow noopener" target="_blank" title="https://github.com/timvideos/gst-switch"&gt;https://github.com/timvideo...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I don't know if they work for you but gstreamer-based tools is a good starting point.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">sk89q</dc:creator><pubDate>Sat, 17 Dec 2016 20:43:38 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3046728137</link><description>&lt;p&gt;I agree, that was more or less the reason we asked under this topic if you could help and set us up with this mpeg dash code,  reading you on the matter best without shout2send I guess&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rick van Leeuwen</dc:creator><pubDate>Sun, 11 Dec 2016 07:48:54 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3045215634</link><description>&lt;p&gt;I would abandon Shoutcast and stick to just nginx-rtmp, especially because it has built-in support for MPEG-DASH (and HLS). For load balancing, you could spin up additional nginx instances that pull from the central server, or perhaps look into HTTP caching with MPEG-DASH and HLS.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">sk89q</dc:creator><pubDate>Sat, 10 Dec 2016 02:32:42 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3044958262</link><description>&lt;p&gt;Three years ago a good friend of mine (59) and me (57) started a hobby non profit audio / video site for which we have (Holland) vps systems,  costing € 20 a month including 5 Tb bandwidth. We developed streamers icecast / liquidsoap (compiled, all options on exept for the winsvc), build them and set them up in our spare time. As former DJ's, radio people, with some computer knowledge.&lt;/p&gt;&lt;p&gt;Those are now used in a cluster / cloud whatever setup, by using a round robin in the DNS system on the a-records dividing the listeners over  the streamers. As we already have some of these in use and Icecast is supposed to be able to stream video (ogg en webm so I was told) to us it is - as human beings operating within a limited non profit hobby budget - convenient to use existing infra structure.&lt;/p&gt;&lt;p&gt;If any other option exists - and which is in your opinion a better choice - and this option is able by sending only one stream to the data center by our playout system, at which site this can be easily relayed within our multi streamer setup I am interested !!!&lt;/p&gt;&lt;p&gt;Single core ocaml is limiting options and serious use heavily and de facto this cannot be used for video streaming using Liquidsoap. Your gstreamer flv setup is the first multicore video streaming setup using liquidsoap I ran in to so far that can be used 24/7/365, that's to say,  if I can solve the remaining hickups we experience on the user / client / viewer side.&lt;/p&gt;&lt;p&gt;We use Debian 8 on the streamers, servers, workstations and everything else in our setups, exept for the freenas and firewall nodes.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rick van Leeuwen</dc:creator><pubDate>Fri, 09 Dec 2016 20:39:11 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3044661131</link><description>&lt;p&gt;Any particular reason why you are using Icecast/Shoutcast to broadcast video?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">sk89q</dc:creator><pubDate>Fri, 09 Dec 2016 16:31:33 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-3044492339</link><description>&lt;p&gt;Very nice tutorial, I have it running on the lan here, streaming video to VLC. For this I have to start VLC en then restart  liquidsoap otherwise I get no connection. After this connect I cannot restart VLC nor can I restart the server. I have to close VLC, restart liquidsoap and then it will connect. I tried :&lt;br&gt; "flvmux streamable=true name=mux ! rtmpsink location=\"rtmp://127.0.0.1:1935/example/live\"",&lt;/p&gt;&lt;p&gt;makes no difference..... Is it perhaps possible for you or anybody to help me with a working mpeg dash pipeline to shout2send replacing this line? .&lt;/p&gt;&lt;p&gt;  pipeline=&lt;br&gt;    "flvmux name=mux ! rtmpsink location=\"rtmp://127.0.0.1:1935/example/live live=1\"",&lt;/p&gt;&lt;p&gt;I tried to set one up for 16 hours using gstreamer pipelining, the wiki, 48 pages on plugins,  &lt;br&gt;and shout2send but had no succes because of the complexity of this encoder &lt;br&gt;system with wich I am unfortunately unfamiliar.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rick van Leeuwen</dc:creator><pubDate>Fri, 09 Dec 2016 14:39:49 -0000</pubDate></item><item><title>Re: Understanding the &amp;#8220;game clock&amp;#8221;</title><link>http://www.sk89q.com/2013/03/improving-your-minecraft-servers-performance/#comment-2963396416</link><description>&lt;p&gt;Thank you so much for this article! I've been trying to figure out what parts of my mod are causing lag(and whether some implementations are considered acceptable in terms of runtime performance), and this post helped me so much!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ong Yu Hann</dc:creator><pubDate>Sat, 22 Oct 2016 08:21:42 -0000</pubDate></item><item><title>Re: Understanding the &amp;#8220;game clock&amp;#8221;</title><link>http://www.sk89q.com/2013/03/improving-your-minecraft-servers-performance/#comment-2904226139</link><description>&lt;p&gt;Bukkit is no longer available for download because of a DMCA takedown request :(&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Justin Drentlaw</dc:creator><pubDate>Mon, 19 Sep 2016 00:17:50 -0000</pubDate></item><item><title>Re: Understanding the &amp;#8220;game clock&amp;#8221;</title><link>http://www.sk89q.com/2013/03/improving-your-minecraft-servers-performance/#comment-2565593404</link><description>&lt;p&gt;Wow this helped a lot, thx!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Yasse</dc:creator><pubDate>Sat, 12 Mar 2016 08:29:12 -0000</pubDate></item><item><title>Re: VC6 Windows binaries for imagick 2.3.0</title><link>http://www.sk89q.com/2010/03/vc6-windows-binaries-for-imagick-2-3-0/#comment-2530214862</link><description>&lt;p&gt;Also, check out &lt;a href="http://php.net/manual/en/imagick.setup.php" rel="nofollow noopener" target="_blank" title="http://php.net/manual/en/imagick.setup.php"&gt;http://php.net/manual/en/im...&lt;/a&gt;.  Someone posted that you also have to edit the extensions and put it in there as well. :-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mark Manning</dc:creator><pubDate>Tue, 23 Feb 2016 01:40:38 -0000</pubDate></item><item><title>Re: VC6 Windows binaries for imagick 2.3.0</title><link>http://www.sk89q.com/2010/03/vc6-windows-binaries-for-imagick-2-3-0/#comment-2530207858</link><description>&lt;p&gt;When it says "Cannot find class" it means "You haven't set up an environment variable that points to where it is located". Or to put that another way - you need to edit the PATH variable so it has in there how to get to it.  &amp;gt;&amp;gt;&amp;gt;&amp;gt;OR&amp;lt;&amp;lt;&amp;lt;&amp;lt; modify your PHP.INI file so the include_path has it in its path. :-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mark Manning</dc:creator><pubDate>Tue, 23 Feb 2016 01:32:06 -0000</pubDate></item><item><title>Re: WorldEdit selection API on Bukkit</title><link>http://www.sk89q.com/2013/03/worldedit-selections-for-bukkit-plugins/#comment-2402511454</link><description>&lt;p&gt;No!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Luifer Hernandez</dc:creator><pubDate>Wed, 09 Dec 2015 21:56:26 -0000</pubDate></item><item><title>Re: HLS/MPEG-DASH/RTMP with nginx</title><link>http://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/#comment-2250524242</link><description>&lt;p&gt;Hi I am having a issue I have followed all the steps but every 15 or so mins it changes streams ?? really doing my head in.I have included my log if anybody can help would be much &lt;br&gt;apprecited.Apart from that it working like a charm&lt;/p&gt;&lt;p&gt;MY LIQ FILE&lt;/p&gt;&lt;p&gt;set("frame.video.channels",1)&lt;/p&gt;&lt;p&gt;set("frame.video.width", 640)&lt;/p&gt;&lt;p&gt;set("frame.video.height", 380)&lt;/p&gt;&lt;p&gt;#set("frame.video.samplerate", 25)&lt;/p&gt;&lt;p&gt;set("gstreamer.add_borders", true)&lt;/p&gt;&lt;p&gt;set("clock.allow_streaming_errors",false)&lt;/p&gt;&lt;p&gt;s = &lt;a href="http://playlist.safe" rel="nofollow noopener" target="_blank" title="playlist.safe"&gt;playlist.safe&lt;/a&gt;(mode="randomize", "/home/dazzler/transmission/completed")&lt;/p&gt;&lt;p&gt;s = fallback([s, blank()])&lt;/p&gt;&lt;p&gt;output.gstreamer.audio_video(&lt;/p&gt;&lt;p&gt;  video_pipeline=&lt;/p&gt;&lt;p&gt;    "videoconvert ! x264enc bitrate=400 ! video/x-h264,profile=baseline ! queue !mux.",&lt;/p&gt;&lt;p&gt;  audio_pipeline=&lt;/p&gt;&lt;p&gt;    "audioconvert ! voaacenc bitrate=64000 !queue ! mux.",&lt;/p&gt;&lt;p&gt;  pipeline=&lt;/p&gt;&lt;p&gt;    "flvmux name=mux ! rtmpsink location=\"rtmp://127.0.0.1:1935/example/live live=1\"",&lt;/p&gt;&lt;p&gt;  s)&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 &amp;gt;&amp;gt;&amp;gt; LOG START&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [protocols.external:3] Found "/usr/bin/wget".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [main:3] Liquidsoap 1.1.1&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [main:3] Using: graphics=[distributed with Ocaml] pcre=7.0.2 dtools=0.3.1 duppy=0.5.1 duppy.syntax=0.5.1 cry=0.2.2 mm=0.2.1 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.5 vorbis=0.6.1 opus=0.1.0 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.2 shine=0.1.1 gstreamer=0.2.0 frei0r=0.1.0 voaacenc=0.1.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.5 bjack=0.1.4 alsa=0.2.1 ao=0.2.0 samplerate=0.1.2 taglib=0.3.1 magic=0.7.3 camomile=0.8.4 inotify=1.0 faad=0.3.2 soundtouch=0.1.7 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 dssi=0.1.1 sdl=0.9.1 camlimages=4.0.0 lo=0.1.0 yojson=1.1.7 gd=1.0a5&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gavl.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/samplerate.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/shine.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/portaudio.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/graphics.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ogg.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/pulseaudio.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/vorbis.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/xmlplaylist.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/bjack.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gstreamer.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/soundtouch.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/frei0r.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/sdl.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/mad.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ladspa.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac_ogg.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lo.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/faad.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ao.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/speex.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/oss.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/dssi.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lame.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/schroedinger.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gd.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/theora.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/voaacenc.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/cry.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/camlimages.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/alsa.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lastfm.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/taglib.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/opus.cmxs.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [threads:3] Created thread "generic queue #1".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [threads:3] Created thread "generic queue #2".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [completed:3] Loading playlist...&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:14 [completed:3] Playlist is a directory.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:16 [decoder:3] Method "GSTREAMER" accepted "/home/dazzler/transmission/completed/Interstellar.2014.720p.BluRay.x264.YIFY.mp4".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:17 [decoder:3] Method "GSTREAMER" accepted "/home/dazzler/transmission/completed/The.Big.Lebowski.1998.720p.BrRip.x264.YIFY.mp4".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:18 [decoder:3] Method "GSTREAMER" accepted "/home/dazzler/transmission/completed/savages.mkv".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:19 [decoder:3] Method "GSTREAMER" accepted "/home/dazzler/transmission/completed/southpaw.avi".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:19 [completed:3] Successfully loaded a playlist of 4 tracks.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:19 [decoder:3] Method "GSTREAMER" accepted "/home/dazzler/transmission/completed/southpaw.avi".&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:19 [completed:3] Prepared "/home/dazzler/transmission/completed/southpaw.avi" (RID 5).&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:19 [threads:3] Created thread "wallclock_gstreamer" (1 total).&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:19 [clock.wallclock_gstreamer:3] Streaming loop starts, synchronized by active sources.&lt;/p&gt;&lt;p&gt;2015/09/13 00:17:19 [fallback_6046:3] Switch to completed.&lt;/p&gt;&lt;p&gt;2015/09/13 00:36:07 [completed:3] Finished with "/home/dazzler/transmission/completed/southpaw.avi".&lt;/p&gt;&lt;p&gt;2015/09/13 00:36:07 [decoder:3] Method "GSTREAMER" accepted "/home/dazzler/transmission/completed/savages.mkv".&lt;/p&gt;&lt;p&gt;2015/09/13 00:36:07 [completed:3] Prepared "/home/dazzler/transmission/completed/savages.mkv" (RID 0).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">darren temperley</dc:creator><pubDate>Sat, 12 Sep 2015 18:44:59 -0000</pubDate></item><item><title>Re: Easy JVM CPU profiling with WarmRoast</title><link>http://www.sk89q.com/2013/06/easy-jvm-cpu-profiling-with-warmroast/#comment-2164547717</link><description>&lt;p&gt;Disreguard this, i added the quotes i needed after scrolling down and i'm posting a picture of my new error.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">1010790</dc:creator><pubDate>Thu, 30 Jul 2015 00:17:57 -0000</pubDate></item><item><title>Re: Easy JVM CPU profiling with WarmRoast</title><link>http://www.sk89q.com/2013/06/easy-jvm-cpu-profiling-with-warmroast/#comment-2164541255</link><description>&lt;p&gt;I managed to download the source first by accident but got the jar correctly, i then made the .bat file i would need. Placed the jar and the bat file in the same folder and proceeded to use this code java -Djava.library.path=C:\Program Files\Java\jdk1.8.0_51/jre/bin -cp C:\Program Files\Java&lt;/p&gt;&lt;p&gt;\jdk1.8.0_51tools.jar;Roast.jar com.sk89q.warmroast.WarmRoast --thread "Server thread"&lt;br&gt;pause&lt;/p&gt;&lt;p&gt;I changed it to roast.jar instead because it was shorter and i had already done it before i made the .bat file. Anyways when this is run i added pause to the end to see the console before it shuts off and cmd says it cannot find or load main class file in the ending file jdk1.8.0_51/jre/bin. Any help would be GREATLY apreciated as to what's going wrong. Besides the name and location no other piece of the run command is changed. Side note i have run it without changing anything and i recieve the same errors.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">1010790</dc:creator><pubDate>Thu, 30 Jul 2015 00:10:35 -0000</pubDate></item><item><title>Re: Security vulnerability allowing account spoofing</title><link>http://www.sk89q.com/2011/09/minecraft-name-spoofing-exploit/#comment-2124728850</link><description>&lt;p&gt;bin/minecraft.jar wasn't found.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">xOpWarriorx</dc:creator><pubDate>Wed, 08 Jul 2015 15:30:02 -0000</pubDate></item></channel></rss>