Event Photos: Antioch West Church Service and Potluck – July 23, 2017

This gallery contains 48 photos.

I recently was blessed with the opportunity to upgrade my photography equipment. I upgraded from the Canon 40D to the 80D and bought a few new lenses: Canon 18-135mm/3.5-5.6 IS USM, Canon 200mm/2.8L and the Canon 85mm/1.8. I love the large aperture on the primes which makes them work really well for indoor event photography. The zoom seems like a good all-around lens, and eventually I hope to obtain its companion external servo unit to… Would you like to know more? Continue Reading.

IEEE 802 Standards Available for Download

The worlds networkIEEE Get Program
Through the IEEE-SA and industry support, select IEEE standards are available for download, in PDF format, at no charge.

Unfortunately, as awesome as technical standards are, they are often inaccessible to technicians who would like to study them. Standards bodies such as IEEE and ISO tend to require expensive industry memberships in order to be able to download standards documents.

I noticed today while browsing the IEEE 802.11 standards, that for a limited time mere commoners such as myself are able to download and read the 802 standards. They call it the IEEE Get Program.

Here’s the 802 Standards section to get you started.

WordPress Plugin: Added RTMP Stream Support to WordPress video.js plugin (hope it works)

I’ve been experimenting with video plugins lately, and I’d like to get streaming working for the large MP4 videos that I host here. I was using JW Player, but I thought it’d be interesting to tryout the video.js player as well.

video.js is an HTML5 video player with smooth fallback to Flash for those users who cannot use HTML5.

I noticed on the Video.JS blog that RTMP support is now present and supported by the video.js embedded video player. Unfortunately, the video.js WordPress plugin doesn’t yet support this feature, so I modified my video.js plugin file in my WordPress install to support RTMP streaming.

It’s stuttering, but it could be because I am uploading a large file to S3 at the moment at 1.4 MB/sec (11.2 Mb/sec), so I may be using up
my local bandwidth.

Use is:

[ videojs stream="rtmp://stream.example.com/cfx/st/&mp4:MY-VIDEO_1080P.mp4" mp4="http://cdn.example.com/MY-VIDEO_1080P.mp4"]

Relevant section of the code as modified:

/* The [ video ] or [ videojs ] shortcode */
function video_shortcode($atts, $content=null){
 add_videojs_header();
 
 $options = get_option('videojs_options'); //load the defaults
 
 extract(shortcode_atts(array(
 'stream' => '',
 'mp4' => '',
 'webm' => '',
 'ogg' => '',
 'youtube' => '',
 'poster' => '',
 'width' => $options['videojs_width'],
 'height' => $options['videojs_height'],
 'preload' => $options['videojs_preload'],
 'autoplay' => $options['videojs_autoplay'],
 'loop' => '',
 'controls' => '',
 'id' => '',
 'class' => '',
 'muted' => ''
 ), $atts));

 $dataSetup = array();
 
 // ID is required for multiple videos to work
 if ($id == '')
 $id = 'example_video_id_'.rand();

 // RTMP MP4 Source Supplied
 if ($stream)
 $stream_source = '<source src="'.$stream.'" type=\'rtmp/mp4\' />';
 else
 $stream_source = '';

 // MP4 Source Supplied
 if ($mp4)
 $mp4_source = '<source src="'.$mp4.'" type=\'video/mp4\' />';
 else
 $mp4_source = '';

 // WebM Source Supplied
 if ($webm)
 $webm_source = '<source src="'.$webm.'" type=\'video/webm; codecs="vp8, vorbis"\' />';
 else
 $webm_source = '';

 // Ogg source supplied
 if ($ogg)
 $ogg_source = '<source src="'.$ogg.'" type=\'video/ogg; codecs="theora, vorbis"\' />';
 else
 $ogg_source = '';
 
 if ($youtube) {
 $dataSetup['forceSSL'] = 'true';
 $dataSetup['techOrder'] = array("youtube");
 $dataSetup['src'] = $youtube;
 }
 // Poster image supplied
 if ($poster)
 $poster_attribute = ' poster="'.$poster.'"';
 else
 $poster_attribute = '';
 
 // Preload the video?
 if ($preload == "auto" || $preload == "true" || $preload == "on")
 $preload_attribute = ' preload="auto"';
 elseif ($preload == "metadata")
 $preload_attribute = ' preload="metadata"';
 else 
 $preload_attribute = ' preload="none"';

 // Autoplay the video?
 if ($autoplay == "true" || $autoplay == "on")
 $autoplay_attribute = " autoplay";
 else
 $autoplay_attribute = "";
 
 // Loop the video?
 if ($loop == "true")
 $loop_attribute = " loop";
 else
 $loop_attribute = "";
 
 // Controls?
 if ($controls == "false")
 $controls_attribute = "";
 else
 $controls_attribute = " controls";
 
 // Is there a custom class?
 if ($class)
 $class = ' ' . $class;
 
 // Muted?
 if ($muted == "true")
 $muted_attribute = " muted";
 else
 $muted_attribute = "";
 
 // Tracks
 if(!is_null( $content ))
 $track = do_shortcode($content);
 else
 $track = "";

 $jsonDataSetup = str_replace('\\/', '/', json_encode($dataSetup));

 //Output the <video> tag
 $videojs = <<<_end_

 <!-- Begin Video.js -->
 <video id="{$id}" class="video-js vjs-default-skin{$class}" width="{$width}" height="{$height}"{$poster_attribute}{$controls_attribute}{$preload_attribute}{$autoplay_attribute}{$loop_attribute}{$muted_attribute} data-setup='{$jsonDataSetup}'>
 {$stream_source}
 {$mp4_source}
 {$webm_source}
 {$ogg_source}{$track}
 </video>
 <!-- End Video.js -->

_end_;