Does libvlc.dll / libvlccore.dll support open and read timeouts? - vlc

I am aware VLC incorporates ffmpeg internally, among other media libraries, and ffmpeg exposes two callbacks that receive calls when working with IP/network media streams: an open timeout and a read timeout. The open timeout is the time limit to establish the connection with a URL, and the read timeout is the time limit to read the next network packet.
Does ibvlc.dll / libvlccore.dll expose or support anything similar?

What kind of stream are you trying to read? There are various timeouts options in libvlc that you can use. The list is here: https://wiki.videolan.org/VLC_command-line_help
For example:
--rtsp-session-timeout=<integer>
Sets the timeout option in the RTSP session
string
Defines what timeout option to add to the RTSP session ID string.
--rtsp-timeout=<integer> RTSP session timeout (s)
RTSP sessions will be closed after not receiving any RTSP request for
this long. Setting it to a negative value or zero disables timeouts.
The default is 60 (one minute).
--ipv4-timeout=<integer [0 .. 2147483647]>
TCP connection timeout
Default TCP connection timeout (in milliseconds)

Related

HSM Connection Persistent or Non-persistent

I'm about to use thales hsm just for doing some aes encryption/decryption with using http://www.pkcs11interop.net/
But, I have one question raised in my mind.
I have two ways to use thales hsm with my server application
One way is that: whenever i need to do aes operation, open a connection, do the job, close the connection.
The other way: open the connection at the start of the server application, do aes operations in the lifetime of the server
application, close the connection whenever the server needs to be
closed.
So my question is, which way is the correct (or suggested) way of using hsm?
It entirely depends on your needs and usage of HSM. If you send 1 message in 5 minutes it is better to open connection for every AES operation and close connection after finishing job. Generally if you send more then 1 message in a minute you should have persistent connections because HSM's limited connection resources could be depleted in a short time.
Thales HSMs default settings allow you to open max 64 connections and check those connections in 60 minutes intervals. If a connection is closed it could understand it after 60 minutes later.
If you open a connection for every request you can reach to 64 connection limit in a short time and generally HSM start to does not allow to open new connections anymore. To get rid of it you can change Hsm settings to 1 Minute check intervals for garbage collection of connections.
I suggest to use persistent connections(pool) for heavily use of HSMs and renew(close-open) all connections in 20 minutes intervals.

How to identify the start and end of a stream through wowza?

I'm new in Wowza. I need to know whether there is any mechanism to identify the start and end of a stream through wowza. This service will monitor each of the inbound ports that are currently bound to wowza engine and then try to create a notification on two events.
1. Start of UDP packets in to the port, the event should trigger everytime a new port receives packets.
2. End of UDP packets in to the port. If no packets hit the given port for a certain period of time, this event will be triggered.
Wowza has modules and there is one that makes something similar: https://www.wowza.com/forums/content.php?171-How-to-use-IMediaStreamActionNotify2-to-monitor-live-streams-%28ModuleStreamWatchDog%29
the source is public so you could modify to match your needs. Java skills required.
the other way is to call the rest api periodically and check for new streams.

Exception class EIdReadTimeout with message 'Read timed out' [Indy-IdFTP]

I want to download a file from FTP. If the file is small (usually under 1000MB) it works. However, if the file is big I get an EIdReadTimeout. Why? Should I keep the connection alive? From what I know reading data has its own channel so I don't have to keep the connection alive.
What is odd is that the exception appears at the end of the Get (after Get successfully downloads the whole file): FTP.Get(Name, TempGzFile, TRUE, FALSE) !!!!
Documentation:
TIdFTP.ReadTimeout - Number of milliseconds to wait for an FTP protocol response.
TIdFTP.TransferTimeout - Timeout value for read operations on the data channel for the FTP
client.
By default ReadTimeout is set to 60sec and TransferTimeout to 10sec.
I a using Delphi XE7 (which I guess uses Indy 10). The Passive property for my IdFTP is set to false.
The FTP protocol uses multiple TCP/IP connections - one for the main command/response connection, and separate connections for data transfers. While a data transfer is in progress, the main command connection sits idle. Once the transfer is finished, the command connection receives a response.
If you are passing through a router/firewall that is not FTP-aware, the command connection is likely to get killed if it sits idle for too long during a large transfer. The connection is usually not killed "gracefully", so even the OS does not know the connection is gone. When TIdFTP then tries to read a transfer response that never arrives, it times out.
To account for that, use the TIdFTP.NATKeepAlive property to enable TCP/IP level keep-alives on the command connection during transfers. Set NATKeepAlive.UseKeepAlive to True, and set NATKeepAlive.IdleTimeMS (the idle timeout before keepalives start sending) and NATKeepAlive.IntervalMS (the interval between each keepalive) to suitable values.
Note, however, that IdleTimeMS and IntervalMS are only implemented for Windows 2000+, Linux, and BSD at this time. Other platforms use defaults provided by the OS (which tend to be very large). If you need to customize the values on those platforms, you can use the TIdFTP.OnDataChannelCreate and TIdFTP.OnDataChannelDestroy events to call TIdFTP.Socket.Binding.SetSocketOption() directly as needed.

Icecast relay stream can buffer a progressive audio stream

After reading the documents of icecast, I have two questions:
1) I'm not sure the icecast server can buffer audio streams, if It does can, How about using relaying?
2) If i have many dynamic relay servers to proxy, How to config the config file? I mean I have to change the config file dynamicly, since i have not sean that icecast supports the regular expression such as /realtime(\d+) to match all the realtime stations.
Icecast does buffer streams. When a client connects, the buffer data is flushed as fast as Icecast can loop around and send data.
Icecast can also relay existing streams. From the documentation:
<relay>
<server>192.168.1.11</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
Now, as for doing this on-the-fly, as far as I know there is no way to do this in Icecast.
I found one of the solutions which is free & simple (tried & tested), but with some limitations.
Rocket Streaming Audio Server
https://www.rocketbroadcaster.com/streaming-audio-server/
It really allows you to relay https stream to http (stream mirroring). Configuring the app is simple. It relays streams 'as is' (without re-encoding), but in free version you can stream only to 100 listeners.

OSB timeout before a response is received

I have an OSB application that communicates with a web service. I'm sending requests with the test console. The result returned to the test console is empty. How can I increase the time while the application is waiting for a response?
There are two parameters for connection. Connection Timeout & Read Timeout. Make sure, you are putting these value optimal.
(1) Connection Timeout - Timeout for making TCP connection to end-point. (usually 2 sec to 5 seconds.)
(2) Read Timeout - Timeout for getting & reading response from server/endpoint after successful TCP connection. (This should be based on SLA for interface contract.)
Thanks, Anil
If you want to increase business service response timeout, in OEPE (Eclipse).
Please select that Business Service -> HTTP Transport -> (Read Timeout or Connection Timeout).
Update it to appropriate value.
By default its value 0 (zero), means no timeout.

Resources