No announcement yet.

New GPL NSV streaming software.

  • Filter
  • Time
  • Show
Clear All
new posts

  • New GPL NSV streaming software.

    Pumbaa2 has released a fully functional NSV streaming client. Open Source and GPL

    Scenic Television is your ambient window to the world - -

  • #2


    • #3
      A friend of mine sent me this screen shot. All I can really do is show a blank screen shot as I don't really have any NSV Files on my drives (just the ones I use to test the program with). But this clearly shows the "Schedule" of what is to come.


      • #4
        NSVx is awesome. good job with it!


        • #5
          Yeah, I use it because it does provide a really stable stream at the correct bitrate without having to do the math and further take apart the NSV file to see how fast I should be streaming the file. The control is also pretty light weight and uses a very minimal amount of CPU time. My ONLY complaint is the lack of call backs from the control. Like progress, the control itself will display position but won't return a value or something that tells my program what position the stream it at allowing me to implement my own progress bar. So I left the control visible. So far it has also done what I've told it to do. My program has ran for days without any issues from that control. But I do tend to disconnect from the server and reconnect, etc when I need access to it.


          • #6
            Originally Posted by pumbaa2 View Post
            ... screenshot ...
            so, it's like a youtube playlist
            "If you don't like DNAS, write your own damn system"

            So I did


            • #7
              Never used a YouTube playlist actually. The idea was to plot out a timeline of what is to come and when. That way the information could be exported to a HTML Page or XML. This would easily allow a broadcaster to display their schedule on their website. I'm still deciding on whether I want to make it "schedule slot" based. That way certain hours would always display certain programming with "commercials" for the filler. I quote commercials because it could be anything, music videos, funny clips from "The Man Show" or "In Living Colour", etc, etc. Actually running commercials and not getting paid for them would be stupid, but there are many things that could fill the gap between programs to keep the scheduler "on track."


              • #8
                Pre-release 1.0.6 Fixes:
                • Tooltip Text Displays Entire Stream Name (Convenance)
                • Underscores and Periods converted to Spaces with Extension Stripped for Titles based from Filename (Fixes my eyes!)
                • Overflow on "Long Calculation" from Header Read now returns 0 (Fixes Crash without bad header read, hopefully?)
                • Project File tested for Existence before load. (Fixes Crash)
                • Titlebar updated to name of Project File Loaded (Convenance)
                • Tabs between Adding Files and Shoutcast Configuration opens up space for more options and better display

                Did I miss anything here? I haven't officially released it yet... Anymore immediate problems?


                • #9
                  RayLine NSV Streamer 1.0.6 Released

                  Feel free to check the website for more information about this project. On top of the features mentioned above, I've added HTML Guide Generation. This will allow servers that are using this program to create a "TV Station" to update their website with what is going to come on and when. For the moment, times are posted according to the local time on the server itself. If you want to see an example of the HTML Guide, a friend of mine is running it on his website. You can look at the guide directly by following this link: http://thepiratesden.dyndns*****Piratetv/channel1.html

                  This Guide is LIVE (not a demo). It updates at regular intervals. The channel name at the top should show up in the Shoutcast TV Directory. If you have any questions, feel free to post here or on my Forums.


                  • #10
                    RayLine NSV Streamer 1.0.7 has been Released!

                    Version 1.0.7 is bug fixes release with a few enhancements. The following features can be found in this version of RayLine NSV Streamer:

                    NSVx Control is inside the program now. The need for this dependency has been eliminated (This should fix any unregistered control problems as reported by oldmagic).

                    Latest NSVx Code Version 0.1.3-Beta which includes better stream timing and better access to Shoutcast Service Information. (Should fix Guide De-Sync and Shoutcast Overruns causing Pink Blocks).

                    Added a real progress bar to the program based on new calls from NSVx Control.

                    Added Users Connected and Average Connect Time to GUI and HTML Guide Page along with an updated Template File.

                    Fixed Bug: Update HTML Icon outputting a "Offline Page" while streaming (as reported by lostchain).

                    Fixed Bug: NSVx would fail to reset progress to 0 and report the event on "Stop Stream."
                    NSVx Control has been moved to the Configuration Page as Progress is reported by NSVx Events now, but not hidden as a Thank You for Ken's hard work.

                    I will likely not release NSVx.ocx Version 0.1.3 until version 1.0.8 of RayLine NSV Streamer. Many of the new enhancements need testing to ensure functionality. The User and Averages information works with Shoutcast Version 1.9.x but I really wouldn't mind if someone tested it with 2.x. There are code parsing trappers to prevent errors in NSVx.OCX but the result will be no triggered update events if there is a problem gathering User and Averages Information (which would result in users staying at 0 and Avg Time staying at 0m 0s).

                    There are also some more timing issues that have to be resolved in relation to stream parsing for "Frame Tags". There is the likelihood that the NSVx Control may miss a frame tag causing it to under-count the number of frames being send out (25fps but 26 or 27 frames gets sent by mistake). This would result in the Control getting slightly ahead of itself and possibly causing a overrun in the Shoutcast Server. The timing issue is minor compared to the one I fixed and the result may cause a pink block here and there but nothing critical. The particular problem requires a rewrite of the stream parsing routine which may result in a rewrite of the streaming code itself. The stream is also pushed in 1 second intervals (all 15 frames at once for 15fps or 30 frames at once for 30fps) and and could cause Shoutcast Server overruns especially at extremely high bitrates (Generally, HD Video 720p or Higher) which could result in corrupt video. The ideal situation is to push the video one frame at a time however this may increase CPU Time used by NSVx. With today's processors, this should be a marginal impact but I will be performing testing before implementing the changes.


                    • #11
                      Emergency Release Version 1.0.8RC1

                      Due to an issue with NSVx leaving files open and allocating new file pointers until all resources are exhausted, it was interfering with my programs ability to open files. This problem wasn't really noticeable before because NSVx was being used as a separate component, but as its apart of my streamer now it really got in the way of my file allocators. To fix this problem I have issed an emergency release as version 1.0.8RC1 to fix this MAJOR bug. The issue of files being left open after stop stream has been issued to NSVx will be patched as well in the new coming version of NSVx 0.1.3.


                      • #12
                        RayLine NSV Streamer 1.0.8 has been Released!

                        This release handles various bugs that have crept up during the process of making this program. I've spent most of my time writing new features that I needed to slow down just a little to address the little things that go wrong. The following bugs should be fixed now with several GUI Enhancements:

                        HTML Guide doesn't set the font color which can clash with some windows themes causing the text color to be the same as the table color.

                        The infamous timer overflow in NSVx causing a stream to get stuck indefinitely in the "Wait to Send Next Video Frame State" once every 25 days has been fixed (Will be included in NSVx Version 0.1.3).

                        Additional Variables have been added to the HTML Guide to better customize the experience.
                        Offline HTML Guide page wasn't being generated on Exit (while still streaming), leaving viewers believing the station was still online.

                        Selecting a HTML Guide Template and then cancelling the open dialog would clear the previous template instead of keeping it.

                        Output HTML Guide "Save As Dialog" would fail to append ".html" to the file name if the file extension wasn't already specified (Valid extensions are *.html, *.htm, *.txt and *.php).
                        NSVx AND RayLine NSV Streamer tend to create 0 byte files if either attempt to open a NSV that don't exist because of the "Default Binary Read-Write Mode." NSV's should be opened as read-only. (Will be included in NSVx Version 0.1.3 with a new "State Condition" of "File not Found" for this problem, handle as if it's back to State 1).

                        Failure to run NSVx.Setup (AND NSVx.Header if you're using Ken's Version 0.1.2 Spec) before NSVx.Connect will stay at State 0 causing a infinite loop in your program if you go by the Programming Instructions in the Demo Program (Written by Ken). Since all programs use this loop that I've seen so far, a new "State Condition" will be created that means, "Please Setup First". However, the correct way to handle this would be the same as Winsock itself, Raise an Event when the Control is ready for Streaming, not a "While NSVx.State = 0: DoEvents: Wend". This causes 100% CPU during the "Shoutcast Connect" and isn't necessary (granted a sleep call could be added but that isn't the point). This is a NSVx Specific issue and is still being worked on.

                        A default interval of 10 minutes (which is adjustable or can be disabled) has been added to recreating the HTML Guide. Useful for updating stats on the Guide like "Users Connected to the Stream" and "Connection Averages" on a more regular basis.

                        Ability to New Project, Open Project, New Playlist, Open Playlist and the ability to adjust the Shoutcast Server Settings while streaming is now disabled! Taking these actions while streaming is asking for a crash and if everything does survive, it will very likely cause very unexpected results. Any config options that are still supported while streaming will stay enabled. You can still add files and delete files from the current playlist while streaming.

                        You can no longer move a file down past a blank line. This wasn't fatal and would just cause the streamer to "Finish" at the blank line as if the playlist is over. It was still confusing and only LostChain (in his infamous efforts to BREAK MY PROGRAM) would attempt to do something like this to prove a point. FIXED!

                        Status Bar to give more detailed information about what is going on.

                        Experimental Drag/Drop Support for File Fields in HTML Guide Configuration.

                        Experimental Drag/Drop Support for NSV Files on to "Add Video to Schedule" Button (Button is always enabled now for Drag/Drop Reasons).

                        Field Tab Order has been fixed.

                        Auto Reconnect to Shoutcast (30 Second Timer and same rules as Winamp's Shoutcast DSP with the exception of restarting the current Program).

                        IMMEDIATE Minimize on Startup (If Enabled).

                        IMMEDIATE Connect on Startup (If Enabled).

                        Experimental Drag/Drop of Playlist Items using Single or Multi-Select Options.


                        • #13
                          RayLine NSV Streamer 1.0.9 has been Released!

                          This release handles various bugs that have crept up during the process of making this program (part 2). The following bugs should be fixed now with several GUI Enhancements:

                          Multi-Select Insert on Playlist items works correctly when moving items that are "earlier" in the list because the list shifts down as the items are pulled out. But when taking items from "after" the insertion point causes the list to be shifted up which makes playlist items order backwards during insert because the insert pointer is static.

                          The Public Server Setting was being ignored which always told the server that it was a public server causing it to be listed in the Shoutcast Directory.

                          The Public Server Setting wasn't being Saved in the Project File (Default Public Server Setting is "Enabled").

                          Selecting "Auto Save on Rotate" and streaming a new project that has never been saved before causes a "Save As" Dialog to appear on Playlist Rotate causing the streamer to hang until the project is saved or the dialog is cancelled.

                          Moving or Deleting a NSV File in the playlist will cause the streamer to create a 0 byte file when the file is opened. It seems that "Open Binary Access Read" doesn't throw an exception when the file is not found. The file will now rotate and turn red or roll off depending on settings.

                          Moving or Deleting a NSV File after the playlist is loaded creates a 0 byte file when it comes up to be streamed (NSVx should handle this correctly by returning a "File not Found" error code). This was supposed to be fixed in 1.0.8 but I was having some issues with it.
                          Dead Entries will roll like the the good files now but still won't show up in the HTML Guide. Its better to discover something is wrong, then it to silently disappear and never get noticed.

                          Internal NSVx Support for "Reconnect to Shoutcast." This will allow the stream to pickup from where it left off (if the connection can be re-established immediately). Otherwise the 30 second timer will restart the stream. This support will be available in NSVx Version 0.1.3. The NSVx Progress Bar will turn Red momentary to indicate that it lost connection and is trying to reconnect.

                          You can move a file out of position 1 while streaming using the old style movement keys. This causes unexpected results and should be disabled or the file being placed in position 1 should start streaming right away and the old stream should be aborted.

                          Multi-Select files can rotate into Position 1 allowing it to ultimately be moved while streaming. Files that roll into Position 1 should be un-tagged.

                          Pressing the X Box to Delete a Program Entry would fail to move the selection with the file as the list drops causing the wrong item to be selected.

                          Time/Date's were being displayed for non-existent playlist items (Would display incorrect values now that Calculate Schedule Times skips over slots without programs in them).

                          Much better optimization for "Calculating Schedule Times" greatly increases the Refresh Rate of the Page after files are added or deleted.

                          Item 1 is Greyed out during streaming to indicate that slot can't be messed with (Except the "X Box" which obviously skips the stream item and rotates it if enabled and deletes if not enabled).

                          Hopefully at this point, I've caught all the major problems with the program. I've done some extensive testing with the program and I'm pretty sure I've covered all the problems that could result in a program crash. The UI enhancements should make playlist manipulation easier than ever!


                          • #14
                            Great Work
                            Scenic Television is your ambient window to the world - -


                            • #15
                              RayLine NSV Streamer 1.1.0 has been Released!

                              Native IceCast Support! This is great stuff as there are many benefits to using Icecast. Granted Icecast does support Shoutcast "Compatibility Mode" but it is very limited on how many streams you can have or the functionality and manipulation of the stream options... now the Fixes:

                              Native IceCast 2 Support!

                              Program fails to show up if Auto-Start is enabled and the program is started from the project file.

                              Multi-Select release in an invalid field doesn't reset the colors of the Prev/Next Buttons.

                              Strict Filtering of Fields prevents errors that could cause problems with the program or server.

                              Auto show password on field highlight makes password mistakes less of a headache.

                              Minimize on Auto-Start will Minimize of Load regardless if Auto-Start is enabled or not.

                              I wrote the IceCast handling routines directly into NSVx and will be available to anyone who wants to use native IceCast support in their programs via NSVx. People who have already written programs based around Ken's NSVx Version 0.1.1 or 0.1.2 will only have to make minor code changes to implement the IceCast Support in their program. This support will be fully released in the upcoming NSVx Version 0.1.3 for anyone who wants to take advantage of this support. Currently the client doesn't update user stats from the IceCast Server but I will make sure to correct that in the upcoming Version 1.1.1.

                              Please Note: Due to limitations that I wrote in the initial "Project File" format, I've had to upgrade the format. This shouldn't be a problem as I've written an auto up-grader in the program to re-write your Project File using the new format. All settings and playlist information will be preserved, but keep in mind that once you upgrade your "Project File", you can no longer use it with a version of RayLine NSV Streamer below 1.1.0. However, if it is really necessary to use it again with an older version of RayLine NSV Streamer, you can load it but it will have some invalid "files" at the beginning of the playlist. Simply remove the "Invalid" files and re-save the Project File. But if you have any doubt in your mind, you should make a backup copy of your "Project File" first before doing the upgrade. The program will ask on Project Load if you want to upgrade your Project File and you have the option to refuse, just be aware that if at any point you press "Save Project" or it "Saves on Rotate", it will silently upgrade the project file.