Archive for December, 2012
As 2012 is coming to the end it’s time to sum up project development cycle for the last months and the whole year. There have been a lot of small fixes and compatibility updates over the last couple of months. With your help nginx-rtmp has became much more stable and received many great new features. Current module version is 0.8.7. Major upcoming features are
- vod-stat: Video-on-demand statistics in /stat page. I really need feedback about this. If you use VOD please check out this branch. Do not forget to install new stat.xsl. I’m ready to merge this upon receipt of positive testing feedback.
- mstat: Multi-worker statistics in /stat. Statistics is stored in shared memory and updated once per second. At the moment there’s no way for multi-worker users to watch statistics normally (/stat shows statistics for a random worker). Please try this branch. I need feedback both about stability and usability. New stat.xsl should be installed for this to work properly.
- rooms: An architectural change. This will introduce project-wide rooms shared between live/vod/relay/exec engines. This branch will make it possible to force pull, use initializing execs and have pull reconnect. However it’s still far from being ready. Stay tuned.
I want to thank all the people who used nginx-rtmp and helped me with the project.
Happy new year!
Several people reported problems with multi-worker streaming in FreeBSD. Auto-push connections used to fail at handshake stage. That’s fixed in v0.8.7.
There’s another issue with multi-worker streaming. If your nginx is configured to have cache-related workers they are considered as usual workers by auto-push engine. Push attempts to these workers obviously fail. That results in error messages and nothing more. If you have such configuration just ignore the error. Multi-worker streaming is fine in this case. In future I will implement more checks to escape the error message.
A new wiki article about a simple way of getting the number of clients watching the stream.
In version 0.8.6 of nginx-rtmp-module stream recording has been improved. Video stream in recorded files is now always started with a key frame and proper H264/AAC codec headers are always written. Previously that worked wrong in certain cases.
Today a bug has been discovered in HLS module which resulted in crash. It was caused by writing mpeg-ts trailer to a closed HLS fragment. Now it’s fixed. Please check out version 0.8.3 if you use HLS to make sure it’s stable.
New fixes in nginx-rtmp:
- Aggregated RTMP message support. These are plain FLVs inside RTMP stream. FMS publishes that kind of data in certain cases.
- Fixed auto-generated tcUrl in relay module in case full RTMP url is specified in pull directive. The tcUrl is sometimes verified by server.
- Implemented skipping empty H264/AAC headers.
- Fixed RTMP acknowledge messages. This bug could result in stream disconnect when publishing from FMS.
All the fixes are implemented in aggregate branch.