If you insert position instead of object as source, it unlocks the camera to moved freely with camera.sqs code:
[getposATL player, player, player] call BIS_fnc_liveFeed;
BIS_liveFeed camPrepareTarget [-93444.48,9377.59,25401.25];
BIS_liveFeed camPreparePos [3211.86,5831.95,0.43];
BIS_liveFeed camPrepareFOV 0.543;
BIS_liveFeed camCommitPrepared 0;
BIS_liveFeed camPrepareTarget [-27322.93,99388.77,-17714.95];
BIS_liveFeed camPreparePos [3208.10,5827.30,3.58];
BIS_liveFeed camPrepareFOV 0.543;
BIS_liveFeed camCommitPrepared 5;
sleep 5;
BIS_liveFeed camPrepareTarget [-89453.59,26863.72,-31137.93];
BIS_liveFeed camPreparePos [3214.26,5831.05,7.16];
BIS_liveFeed camPrepareFOV 0.543;
BIS_liveFeed camCommitPrepared 5;
sleep 60;
[] call BIS_fnc_liveFeedTerminate;
You just need to change _camera to BIS_liveFeed.
This gives nice extra to the radiomessages too, you can have e.g. live video of the commander's face giving orders for you with HQ background ambiance (lip files dont just work yet). So much possibilities. I hope the livefeed screen size could also be tweaked.
Edit: Made a script that send live feed from any nearby US chopper if its flying high enough. Scans random units and random spots on grounds. An endless loop.
private ["_source","_target","_ran","_ran2","_fov","_open"];
_source = player;
_target = player;
_open = true;
waitUntil {sleep 5; {(getposATL _x select 2) > 10} count (nearestObjects [vehicle player,["B_MH9_F","B_AH9_F"],2000]) > 0};
{if ((getposATL _x select 2) > 10) then {_source = _x;};} foreach (nearestObjects [vehicle player,["B_MH9_F","B_AH9_F"],2200]);
_target = (getposATL _source) nearEntities [["SoldierEB","SoldierWB"],750];
if (count _target > 0) then {_target = _target call BIS_fnc_selectRandom;} else {_target = [(getposATL _source select 0) + 300 - (random 600),(getposATL _source select 1) + 300 - (random 600),0];};
if (_open) then {[_source, _target, player] call BIS_fnc_liveFeed;};
//hint format ["%1",nearestObjects [vehicle player,["B_MH9_F","B_AH9_F"],2000]];
while {true} do {
if ({(getposATL _x select 2) > 10} count (nearestObjects [vehicle player,["B_MH9_F","B_AH9_F"],2000]) == 0) then {[] call BIS_fnc_liveFeedTerminate; _open = true; waitUntil {sleep 5; {(getposATL _x select 2) > 10} count (nearestObjects [vehicle player,["B_MH9_F","B_AH9_F"],2000]) > 0};} else {_open = false;};
{if ((getposATL _x select 2) > 10) then {_source = _x;};} foreach (nearestObjects [vehicle player,["B_MH9_F","B_AH9_F"],2200]);
_target = (getposATL _source) nearEntities [["SoldierEB","SoldierWB"],750];
if (count _target > 0) then {_target = _target call BIS_fnc_selectRandom;} else {_target = [(getposATL _source select 0) + 300 - (random 600),(getposATL _source select 1) + 300 - (random 600),0];};
if (_open) then {[_source, _target, player] call BIS_fnc_liveFeed;};
_ran = 7 + (random 10);
_ran2 = 2 + (random 5);
_fov = 2 - (random 1);
BIS_liveFeed camPrepareFOV _fov;
BIS_liveFeed camPrepareTarget _target;
BIS_liveFeed camCommitPrepared _ran2;
sleep _ran;
};