PS4 - supports playback without transcoding, but UMS wants to transcode

Discuss media renderers like Xbox 360, TVs, smartphones, etc.
Post Reply
madsdyd
Posts: 2
Joined: Mon Sep 04, 2017 4:25 am

PS4 - supports playback without transcoding, but UMS wants to transcode

Post by madsdyd »

Hi there

This is a specific question for PS4, but the answer may be more general.

I have about 200 GoPro mp4 files, that plays flawlessly on my PS4, through UMS, if I go through the "#--TRANSCODE" virtual folder, and selects [No transcoding]. However, UMS wants to transcode it, if I go through the "normal" folder, which is annoying, because of the delay, both when starting, and during seek. I have disabled subtitles, but is sort of at loss on how to debug/fix this situation. Here is some info about the file from ffprobe:

Code: Select all

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/store/BulkVideoFootage/GoPro/2015-03-01-Amada-februar-2015/GP010197.MP4':
  Metadata:
    major_brand     : avc1
    minor_version   : 0
    compatible_brands: avc1isom
    creation_time   : 2015-02-10 13:20:16
  Duration: 00:02:54.22, start: 0.000000, bitrate: 30188 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 29999 kb/s, 50 fps, 50 tbr, 180k tbn, 100 tbc (default)
    Metadata:
      creation_time   : 2015-02-10 13:20:16
      handler_name    :  GoPro AVC
      encoder         : GoPro AVC encoder
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2015-02-10 13:20:16
      handler_name    :  GoPro AAC
and, the loglines, I belive to be the culprit, when accessing through the "normal" view (not through the #--TRANSCODE virtual folder:

Code: Select all

17:55:02 TRACE Matched media renderer "PlayStation 4" based on address 192.168.1.25
17:55:02 DEBUG Recognized media renderer "PlayStation 4"
17:55:02 TRACE Received a request from PlayStation 4 (192.168.1.25:65028):

GET /get/34820/2015-02-10_13-20-16_GP010197.mp4_transcoded_to.ts HTTP/1.1

HEADER:
  Host: 192.168.1.2:5001
  User-Agent: MediaPlayer/3.00 libhttp/4.73 (PlayStation 4)
  Connection: Keep-Alive

17:55:02 TRACE Asked stream chunk : TimeRange [start=null, end=null] of 2015-02-10_13-20-16_GP010197.mp4 and player MEncoder
17:55:02 TRACE Setting lastStartPosition from time-seeking: 0.0
17:55:02 DEBUG Starting transcode/remux of 2015-02-10_13-20-16_GP010197.mp4 with media info: Container: H264, Size: 657419409, Video Bitrate: 30188010, Video Tracks: 1, Video Codec: h264, Duration: 0:02:54.000, Video Resolution: 1920 x 1080, Frame Rate: 50.000, Frame Rate Mode: CFR (CFR), Matrix Coefficients: BT.709, AVC Level: 4.2, Video Track Title from Metadata: GoPro AVC, Audio Tracks: 1 [Id: 0, Language Code: en, Audio Track Title From Metadata: GoPro AAC, Audio Codec: AAC-LC, Bitrate: 128000, Channels: 2, Sample Frequency: 48000 Hz], DLNAThumbnail: [Format = JPEG, Resolution = 320×180, Size = 9614, DLNA Profile = JPEG_RES_320_180], Mime Type: video/mp4
17:55:02 TRACE Looking for an audio track with lang: eng
17:55:02 TRACE Matched audio track: Id: 0, Language Code: en, Audio Track Title From Metadata: GoPro AAC, Audio Codec: AAC-LC, Bitrate: 128000, Channels: 2, Sample Frequency: 48000 Hz
17:55:02 TRACE Searching for a match for: en with eng and off
17:55:02 TRACE Disabled the subtitles: id: 0, type: UNKNOWN, lang: off
17:55:02 TRACE Not muxing the video stream with tsMuxeR via MEncoder because the user setting is disabled
17:55:02 TRACE Using video bitrate limit from the general configuration (1000 Mb/s)
17:55:02 TRACE Halving the video bitrate limit to 500000 kb/s
17:55:02 TRACE Adjusting the video bitrate limit to the H.264 Level 4.1-safe value of 31250 kb/s
17:55:02 DEBUG Starting mkfifo --mode=777 /tmp/UMS-ums/mencoder1504454102875
17:55:02 DEBUG Unix process ID (mkfifo): 30817
17:55:02 DEBUG Starting mencoder -ss 0 /varhome/ums/YearMonth/2015/02-feb/2015-02-10_13-20-16_GP010197.mp4 -msglevel statusline=2 -oac lavc -of lavf -lavfopts format=mpegts -mpegopts format=mpeg2:muxrate=500000:vbuf_size=1194:abuf_size=64 -ovc lavc -channels 6 -lavdopts debug=0:threads=4 -lavcopts autoaspect=1:vcodec=libx264:acodec=ac3:abitrate=448:threads=4:o=preset=superfast,crf=19,g=250,i_qfactor=0.71,qcomp=0.6,level=3.1,weightp=0,8x8dct=0,aq-strength=0,me_range=16:vrc_maxrate=31250:vrc_buf_size=31250 -nosub -noautosub -ofps 50 -vf yadif -lavdopts fast -mc 0 -noskip -af lavcresample=48000 -srate 48000 -o /tmp/UMS-ums/mencoder1504454102875
17:55:02 DEBUG Reading pipe: /tmp/UMS-ums/mencoder1504454102875
17:55:02 TRACE Opening file /tmp/UMS-ums/mencoder1504454102875 for reading...
17:55:02 TRACE Sleeping for 6000 milliseconds
17:55:02 DEBUG ** MUXER_LAVF *****************************************************************
17:55:02 DEBUG REMEMBER: MEncoder's libavformat muxing is presently broken and can generate
17:55:03 DEBUG INCORRECT files in the presence of B-frames. Moreover, due to bugs MPlayer
17:55:03 DEBUG will play these INCORRECT files as if nothing were wrong!
17:55:03 DEBUG *******************************************************************************
17:55:03 DEBUG [ac3 @ 0x7fcba1ae6560]Channel layout not specified
17:55:03 DEBUG [ac3 @ 0x7fcba1ae6560]No channel layout specified. The encoder will guess the layout, but it might be incorrect.
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]frame MB size (120x68) > level limit (3600)
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]VBV bitrate (31250) > level limit (14000)
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]VBV buffer (31250) > level limit (14000)
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]MB rate (408000) > level limit (108000)
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]AVFrame.format is not set
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]AVFrame.width or height is not set
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]AVFrame.format is not set
17:55:03 DEBUG [libx264 @ 0x7fcba1ae6560]AVFrame.width or height is not set
(The files are the same, UMS is just accessing it as a symlink, that contains the timestamp, etc.).

When I playback thought the "no transcode" option, I get something more like this:

Code: Select all

5025/2015-02-10_13-20-16_GP010197.mp4 HTTP/1.1

HEADER:
  Host: 192.168.1.2:5001
  User-Agent: MediaPlayer/3.00 libhttp/4.73 (PlayStation 4)
  Connection: Keep-Alive

18:33:13 TRACE Asked stream chunk : TimeRange [start=null, end=null] of 2015-02-10_13-20-16_GP010197.mp4 and player null
18:33:13 TRACE Setting lastStartPosition from time-seeking: 0.0
18:33:13 TRACE Did not send subtitle headers because configuration.isDisabledSubtitles() is true, dlna.getMediaSubtitle() is null
18:33:13 TRACE Transfer response sent to PlayStation 4:

HEADER:
  HTTP/1.1 200 OK (non-chunked)
  Content-Type: video/mp4
  Accept-Ranges: bytes
  Connection: keep-alive
  Server: Linux-amd64-4.4.0-83-generic, UPnP/1.0 DLNADOC/1.50, UMS/6.7.3
  Content-Length: 657419409

18:33:13 DEBUG The full filename of which is: /varhome/ums/YearMonth/2015/02-feb/2015-02-10_13-20-16_GP010197.mp4 and the address of the renderer is: 192.168.1.25
18:33:13 TRACE Matched media renderer "PlayStation 4" based on address 192.168.1.25
18:33:13 DEBUG Recognized media renderer "PlayStation 4"
18:33:13 TRACE Received a request from PlayStation 4 (192.168.1.25:50440):

GET /get/35025/2015-02-10_13-20-16_GP010197.mp4 HTTP/1.1

HEADER:
  Range: bytes=176-
  Host: 192.168.1.2:5001
  User-Agent: MediaPlayer/3.00 libhttp/4.73 (PlayStation 4)
  Connection: Keep-Alive
So, basically: How do I get my PS4 to stop appending "mp4_transcoded_to.ts" to this type of files?

(I know I have not attached a full log, but I am hoping the above is enough to give some general tips, or point me in the right direction).

Thanks,

Mads
User avatar
SubJunk
Lead Developer
Posts: 3705
Joined: Sun May 27, 2012 4:12 pm

Re: PS4 - supports playback without transcoding, but UMS wants to transcode

Post by SubJunk »

Hi Mads,
Unfortunately the part of the logs that would've told us why the video was transcoded isn't in those snippets. Feel free to PM me the logs instead of attaching if you're concerned about privacy
madsdyd
Posts: 2
Joined: Mon Sep 04, 2017 4:25 am

Re: PS4 - supports playback without transcoding, but UMS wants to transcode

Post by madsdyd »

Hi SubJunk

Thanks a bunch for answering!

I do not mind posting the log, but I would really like to learn how to decode the logs myself. Could you provide some information on what I should be looking for in the log files? Assume I know how to develop software, has done Java coding, and know both log4j and logback, if that helps :-). Also assume full ability to use command line tools.

If not, I will go through the process with the full log.

Kind regards and thanks!

Mads
Post Reply