1. Воспользуйтесь классом H264VideoStreamSettings;
_h264VideoStreamSettings = new H264VideoStreamSettings();
_h264VideoStreamSettings.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_4_1);
_h264VideoStreamSettings.setMode(cameraConfig.width, cameraConfig.height, cameraConfig.fps);
_h264VideoStreamSettings.setQuality(cameraConfig.bandwidth, cameraConfig.quality);
_h264VideoStreamSettings.setKeyFrameInterval(cameraConfig.keyFrameInterval);
_stream = new NetStream(_netConnection);
_stream.videoStreamSettings = _h264VideoStreamSettings;
// _stream.addEventListener(NetStatusEvent.NET_STATUS, onStreamEventHandlers);
_stream.attachCamera(_camera);
_stream.publish("mp4:video.f4v");
2. Проверяйте возможности камеры, потому как большенство больше 480p не потдерживают;
3. Качество видео ужимается потому что .mpeg4 или .flv по своей специфике уменьшают размер видео потока за счет потери части данных (но если видео транслируется в уверенном 720p и у камеры хорошая оптика - потеря картинки будет менее ощутимой).
И это еще не решит всех ваших вопросов, появяться другие...