Genvid Forum

Empty service name in consul info!


#1

In my ue4 project, I’m getting an error where the streamer is not able to start. Do you know what I need to do to fix this?

Thank you!

Eugene

These are the errors in the web console:

Failed to load http://127.0.0.1:49630/streams/program.mp4: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://127.0.0.1:39073’ is therefore not allowed access. The response had HTTP status code 404. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

2:49630/streams/program.mp4:1 Failed to load resource: the server responded with a status of 404 (Not Found)

From the gvencode log:

E0518 10:32:14.528137 18644 StatsdClient.cpp:442] genvid.gvencode-compose.: Empty service name in consul info!
E0518 10:32:15.403476 19296 AvStreamServerFilter.cpp:1086] Stream cannot be start! onAir:0 videoSubscriptionId:-1 audioSubscriptionId:-1
E0518 10:32:15.403476 19296 AvStreamServerFilter.cpp:812] Cannot start streamer!

From the compose log:

E0518 10:26:23.870658 21100 StatsdClient.cpp:442] genvid.compose-frontend.: Empty service name in consul info!
E0518 10:26:41.238039 12112 StatsdClient.cpp:442] genvid.compose-gameframes.: Empty service name in consul info!


#2

Hi Eugene,

I’m checking with the team and will get back to you shortly.

Thanks,
Sophie


#3

Great. Thank you!

From the cluster ui, I can see that the services and web are running but the game seems to not be registering. It mainly stays in the “starting” state and occasionally goes into running for just a couple seconds. Maybe this is an issue with not pointing to the game correctly? I’m trying to run from the editor and I’m setting my path in the game.hcl to the UE4Editor.exe.


#4

Hi Eugene,

Maybe your executable path is not set correctly.

In your game.hcl, you should have:

path = “{{env UTROOT | js}}\\Engine\\Binaries\\Win64\\UE4Editor.exe”

where UTROOT = C:\Workspace\UT4\UnrealTournament for example.

like:

path = "C:\\Workspace\\UT4\\UnrealTournament\\Engine\\Binaries\\Win64\\UE4Editor.exe"


#5

Yes, the path seems to be set up correctly. I tested it by putting in some bad values and when I do that, the game doesn’t register at all - It shows up as dead in the cluster UI.


#6

I’ll try hard-coding the whole path as you suggest and see if that helps!


#7

Unfortunately, after trying it with the hard-coded path, I get the same results.


#8

Ok,

As you start from the editor, you should have some log in the Output.log window in UE4 Editor.
Go to Menu Window > Developer Tools > Output.log to show the logs.

You should have logs like this one:

LogTemp: Repeating last play command: Selected Viewport
LogBlueprintUserMessages: Early PlayInEditor Detection: Level '/Game/Maps/MainMap.MainMap:PersistentLevel' has LevelScriptBlueprint '/Game/Maps/MainMap.MainMap:PersistentLevel.MainMap' with GeneratedClass '/Game/Maps/MainMap.MainMap_C' with ClassGeneratedBy '/Game/Maps/MainMap.MainMap:PersistentLevel.MainMap'
LogPlayLevel: PlayLevel: No blueprints needed recompiling
PIE: New page: PIE session: MainMap (May 18, 2018, 7:23:07 AM)
LogPlayLevel: Creating play world package: /Game/Maps/UEDPIE_0_MainMap
LogPlayLevel: PIE: StaticDuplicateObject took: (0.003067s)
LogAIModule: Creating AISystem for world MainMap
LogPlayLevel: PIE: World Init took: (0.000866s)
LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/Maps/MainMap.MainMap to /Game/Maps/UEDPIE_0_MainMap.MainMap (0.004670s)
LogGenvidPlugin: Genvid_Initialize(): ok
LogGenvidPlugin: FGenvidPlugin::CreateStream: Video
LogGenvid: VideoStream created
LogGenvidPlugin: FGenvidPlugin::CreateStream: Audio
LogGenvid: UGenvidAudio created
LogGenvid: UGenvidSessionManager::Initialize()
LogBlueprintUserMessages: [BP_GameInstance_C_0] Genvid v1.14.0 (0)
LogInit: XAudio2 using 'Casque pour téléphone (4- Microsoft LifeChat LX-3000)' : 2 channels at 48 kHz using 16 bits per sample (channel mask 0x3)
LogInit: FAudioDevice initialized.
LogGenvid: Video Capture started.
LogLoad: Game class is 'BP_GameMode_C'
LogWorld: Bringing World /Game/Maps/UEDPIE_0_MainMap.MainMap up for play (max tick rate 0) at 2018.05.18-11.23.07
LogWorld: Bringing up level for play took: 0.004171
LogContentBrowser: Native class hierarchy updated for 'MovieSceneCapture' in 0.0018 seconds. Added 11 classes and 0 folders.
LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart
LogGameState: Match State Changed from EnteringMap to WaitingToStart
LogGameMode: Display: Match State Changed from WaitingToStart to InProgress
LogGenvidPlugin: FGenvidPlugin::CreateStream: GameData
LogGenvidPlugin: FGenvidPlugin::CreateStream: Popularity
LogGenvidPlugin: FGenvidPlugin::SubscribeEvent: changeColor
LogGenvidPlugin: FGenvidPlugin::SubscribeEvent: cheer
LogGenvidPlugin: FGenvidPlugin::SubscribeEvent: reset
LogGenvidPlugin: FGenvidPlugin::SubscribeCommand: direction
LogGenvidPlugin: FGenvidPlugin::SubscribeCommand: speed
LogGenvidPlugin: FGenvidPlugin::SubscribeCommand: reset
LogGameState: Match State Changed from WaitingToStart to InProgress
PIE: Play in editor start time for /Game/Maps/UEDPIE_0_MainMap -0.146

Can you provide yours?

Thanks,
Sylvain.


#9

Hi Sylvain,

Here’s the output I’m getting:

LogTemp: Repeating last play command: Selected Viewport
LogPlayLevel: PlayLevel: No blueprints needed recompiling
LogOnline: Display: OSS: FOnlineSubsystemNull::Shutdown()
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Stop() ActiveTask:0000000000000000 Tasks[0/0]
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Exit() started
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Exit() finished
PIE: New page: PIE session: Gym (May 18, 2018, 7:44:22 AM)
LogPlayLevel: Creating play world package: /Game/Maps/Gym/UEDPIE_0_Gym
LogPlayLevel: PIE: StaticDuplicateObject took: (0.005370s)
LogAIModule: Creating AISystem for world Gym
LogPlayLevel: PIE: World Init took: (0.000978s)
LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/Maps/Gym/Gym.Gym to /Game/Maps/Gym/UEDPIE_0_Gym.Gym (0.006815s)
LogInit: XAudio2 using 'Speakers / Headphones (Realtek Audio)' : 2 channels at 48 kHz using 32 bits per sample (channel mask 0x3)
LogInit: FAudioDevice initialized.
LogLoad: Game class is 'RSGameModeBP_C'
LogWorld: Bringing World /Game/Maps/Gym/UEDPIE_0_Gym.Gym up for play (max tick rate 0) at 2018.05.18-11.44.22
LogWorld: Bringing up level for play took: 0.003434
LogContentBrowser: Native class hierarchy updated for 'MovieSceneCapture' in 0.0030 seconds. Added 11 classes and 0 folders.
LogBlueprintUserMessages: [RSPlayerControllerBP_C_1] 1
LogSlate: New Slate User Created.  User Index 2, Is Virtual User: 0
LogSlate: Slate User Registered.  User Index 2, Is Virtual User: 0
LogBlueprintUserMessages: [RSPlayerControllerBP_C_2] 2
LogSlate: New Slate User Created.  User Index 3, Is Virtual User: 0
LogSlate: Slate User Registered.  User Index 3, Is Virtual User: 0
LogBlueprintUserMessages: [RSPlayerControllerBP_C_3] 3
LogGenvidPlugin: Genvid_Initialize(): ok
LogGenvidPlugin: FGenvidPlugin::CreateStream: Video
LogGenvid: VideoStream created
LogGenvidPlugin: FGenvidPlugin::CreateStream: Audio
LogGenvid: UGenvidAudio created
LogGenvid: UGenvidSessionManager::Initialize()
LogGenvidPlugin: FGenvidPlugin::CreateStream: MyStream
LogGenvidPlugin: FGenvidPlugin::SubscribeCommand: MyCommand
LogGenvidPlugin: FGenvidPlugin::SubscribeEvent: MyEvent
LogBlueprintUserMessages: [RSPlayerControllerBP_C_0] 0
LogOutputDevice: Error: Ensure condition failed: Component->HasBegunPlay() [File:C:\GitHub\Greed\UnrealEngine\Engine\Source\Runtime\Engine\Private\Actor.cpp] [Line: 3141] 
Failed to route BeginPlay (EquippableSlots /Game/Maps/Gym/UEDPIE_0_Gym.Gym:PersistentLevel.RSCharacterBP_C_0.EquippableSlots)
LogStats:             FDebug::EnsureFailed -  0.000 s
PIE: Play in editor start time for /Game/Maps/Gym/UEDPIE_0_Gym 4.371
LogCharacterMovement: Warning: GetSimulationTimeStep() - Max iterations 8 hit while remaining time 0.092055 > MaxSimulationTimeStep (0.050) for 'RSCharacterBP_C_0', movement 'Walking'
LogScriptCore: Warning: Script Msg: Divide by zero detected: 12.000000 / 0
Script call stack:
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:ReceiveTick
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:ExecuteUbergraph_RSCharacterBP
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:Update Align Player
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:ExecuteUbergraph_RSCharacterBP
LogScriptCore: Warning: Script Msg: Divide by zero detected: 12.000000 / 0
Script call stack:
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:ReceiveTick
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:ExecuteUbergraph_RSCharacterBP
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:Update Align Player
    Function /Game/Blueprints/Actors/Character/RSCharacterBP.RSCharacterBP_C:ExecuteUbergraph_RSCharacterBP
LogSlate: FSceneViewport::OnFocusLost() reason 2

Thanks,
Eugene


#10

If I try running it a second time, I get this and can’t proceed:


#11

Ok, it seems that there is an error:

LogOutputDevice: Error: Ensure condition failed: Component->HasBegunPlay() [File:C:\GitHub\Greed\UnrealEngine\Engine\Source\Runtime\Engine\Private\Actor.cpp] [Line: 3141] 
Failed to route BeginPlay (EquippableSlots /Game/Maps/Gym/UEDPIE_0_Gym.Gym:PersistentLevel.RSCharacterBP_C_0.EquippableSlots)

Where did you Initialize the GenvidSessionManager?

Do you have a PlayerController with GenvidStreams and/or GenvidEvents and/or Genvid Commands components like this?


#12

I can look into that error and see what is going on.

I have the player controller set up with the three genvid components.

I’m trying to initialize the GenvidSessionManager from the game mode rather than the gameinstance. Could that be causing issues?


#13

Yes, it can cause some issues because the GameMode is only available on the server part.
Genvid is only needed on the client part.

The plugin has some code that checks if you’re running on the client or server side.

GameInstance is a good place to place GenvidSessionManager. (client/server agnostic)
GameState should work too.


#14

I fixed the error we were getting in actor.cpp and moved the initialization of the GenvidSessionManager into the gamestate. I’m still getting the same set of errors and behaviors. Anything else I can try?

Thanks,
Eugene

Here’s the Unreal output on start up:

LogTemp: Repeating last play command: Selected Viewport
LogPlayLevel: PlayLevel: No blueprints needed recompiling
LogOnline: Display: OSS: FOnlineSubsystemNull::Shutdown()
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Stop() ActiveTask:0000000000000000 Tasks[0/0]
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Exit() started
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Exit() finished
PIE: New page: PIE session: Gym (May 18, 2018, 10:53:17 AM)
LogPlayLevel: Creating play world package: /Game/Maps/Gym/UEDPIE_0_Gym
LogPlayLevel: PIE: StaticDuplicateObject took: (0.004457s)
LogAIModule: Creating AISystem for world Gym
LogPlayLevel: PIE: World Init took: (0.000868s)
LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/Maps/Gym/Gym.Gym to /Game/Maps/Gym/UEDPIE_0_Gym.Gym (0.005756s)
LogInit: XAudio2 using 'Speakers / Headphones (Realtek Audio)' : 2 channels at 48 kHz using 32 bits per sample (channel mask 0x3)
LogInit: FAudioDevice initialized.
LogLoad: Game class is 'RSGameModeBP_C'
LogWorld: Bringing World /Game/Maps/Gym/UEDPIE_0_Gym.Gym up for play (max tick rate 0) at 2018.05.18-14.53.18
LogWorld: Bringing up level for play took: 0.003321
LogContentBrowser: Native class hierarchy updated for 'MovieSceneCapture' in 0.0030 seconds. Added 11 classes and 0 folders.
LogBlueprintUserMessages: [RSPlayerControllerBP_C_1] 1
LogSlate: New Slate User Created.  User Index 2, Is Virtual User: 0
LogSlate: Slate User Registered.  User Index 2, Is Virtual User: 0
LogBlueprintUserMessages: [RSPlayerControllerBP_C_2] 2
LogSlate: New Slate User Created.  User Index 3, Is Virtual User: 0
LogSlate: Slate User Registered.  User Index 3, Is Virtual User: 0
LogBlueprintUserMessages: [RSPlayerControllerBP_C_3] 3
LogGenvidPlugin: Genvid_Initialize(): ok
LogGenvidPlugin: FGenvidPlugin::CreateStream: Video
LogGenvid: VideoStream created
LogGenvidPlugin: FGenvidPlugin::CreateStream: Audio
LogGenvid: UGenvidAudio created
LogGenvid: UGenvidSessionManager::Initialize()
LogGenvidPlugin: FGenvidPlugin::CreateStream: MyStream
LogGenvidPlugin: FGenvidPlugin::SubscribeCommand: MyCommand
LogBlueprintUserMessages: [RSPlayerControllerBP_C_0] 0
PIE: Play in editor start time for /Game/Maps/Gym/UEDPIE_0_Gym -0.293
LogSlate: FSceneViewport::OnFocusLost() reason 0

#15

In case it is relevant, I am getting some genvid errors when I stop the game related to destroying the streams. It looks like the streams never get created possibly?

Maybe this issue then leads to the error related to startvideocapture on subsequent attempts to start the game.

LogGenvidPlugin: FGenvidPlugin::DestroyStream: MyStream
LogGenvidPlugin: FGenvidPlugin::UnsubscribeCommand: MyCommand
LogGenvidPlugin: FGenvidPlugin::DestroyStream: MyStream
LogGenvid: Error: DestroyStream(MyStream) failed: UnknownError (3).
LogGenvidPlugin: FGenvidPlugin::UnsubscribeCommand: MyCommand
LogGenvidPlugin: FGenvidPlugin::DestroyStream: MyStream
LogGenvid: Error: DestroyStream(MyStream) failed: UnknownError (3).
LogGenvidPlugin: FGenvidPlugin::UnsubscribeCommand: MyCommand
LogGenvidPlugin: FGenvidPlugin::DestroyStream: MyStream
LogGenvid: Error: DestroyStream(MyStream) failed: UnknownError (3).
LogGenvidPlugin: FGenvidPlugin::UnsubscribeCommand: MyCommand
LogGenvidPlugin: FGenvidPlugin::DestroyStream: Audio
LogGenvid: AudioStream Destroyed
LogGenvidPlugin: FGenvidPlugin::DestroyStream: Video
LogGenvid: VideoStream Destroyed
LogGenvidPlugin: Genvid_Terminate(): ok
LogGenvid: UGenvidSessionManager::Terminate()
LogOnline: Display: OSS: FOnlineSubsystemNull::Shutdown()
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Stop() ActiveTask:0000000000000000 Tasks[0/0]
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Exit() started
LogOnline: Display: OSS: FOnlineAsyncTaskManager::Exit() finished
LogPlayLevel: Display: Shutting down PIE online subsystems
LogPlayLevel: Display: Destroying online subsystem :Context_1
LogOnline: Display: OSS: FOnlineSubsystemNull::Shutdown()

#16

It’s really strange.
You have several call with the same Stream Id “MyStream”

LogGenvid: Error: DestroyStream(MyStream) failed: UnknownError (3).

Do you have only one game instance?
Do you run in hybrid mode (client/server) or in client / server mode?


#17

After looking into what was going on, we found a couple things leading to the issues but the main problem was the order in which things were loading. Ended up using the game instance to initialize the session manager and loading the components on the game state and everything worked. Thanks for all the help with this today!