Description

The URL parser encodes the input path to a URL-encoded path even if it is local, so if the path contains unicode characters (such as Japanese Kanji ), the media file cannot be read.

Following workaround works :

 

	FString FURL_RFC3986::Get(bool bIncludeQuery, bool bIncludeFragment)
	{
...
				if (Authority.Len() && !IsPathSeparator(Path[0]))
				{
					URL += TEXT("/");
				}
#if 1	//work around
				if( Scheme.Equals(TEXT("file")) )
				{
					URL += Path;
				}
				else
				{
					UrlEncode(URL, Path, RequiredEscapeCharsPath);
				}
#else
				UrlEncode(URL, Path, RequiredEscapeCharsPath);
#endif
			}
			else if ((Query.Len() && bIncludeQuery) || (Fragment.Len() && bIncludeFragment))
			{
				URL += TEXT("/");
			}

Steps to Reproduce
  1. Extract attached repro project  [Link Removed]
  2. rename project folder name to "MyProjectテスト" 
  3. open the project
  4. start PIE session

Result

Electra player fails video play back with following error :

 

LogElectraPlayer: Error: [000008A5F3BB4800][000008A5F17244D0] ReportError: "error=8 in MP4 playlist reader: code 1, "Failed to parse mp4 "file://D:/dev/ue500projects/ElectraTest%30C6%30B9%30C8/Content/Movies/MediaExample.mp4" with error 7""

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-164040 in the post.

0
Login to Vote

Fixed
ComponentMedia Framework
Affects Versions5.0
Target Fix5.2
Fix Commit22748263
Main Commit22748263
CreatedSep 16, 2022
ResolvedOct 24, 2022
UpdatedNov 27, 2022