"Undefined index" error for field which is defined
First thing to note is you're seeing notices, not errors. Notices are a less severe type of PHP error. It's an alert that notes script execution is continuing, but something is wrong that could be a bigger problem. In your case, the array element $fields['field_video'] doesn't exist,
thus trying reference a property $fields['field_video']-&gt;content on a non-existant object causes PHP to fire off notices.

As Geoff mentioned, this can occur if your view rows are loading nodes that don't produce this field and throwing an isset($fields['field_video']) &amp;&amp; in your if statement should fix your template from making bad references.