PS4 - supports playback without transcoding, but UMS wants to transcode
Posted: Mon Sep 04, 2017 4:37 am
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:
and, the loglines, I belive to be the culprit, when accessing through the "normal" view (not through the #--TRANSCODE virtual folder:
(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:
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
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
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
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
(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