PDA

View Full Version : FFMPEG 100% when transcoding DTS



Diesel
11-02-2011, 08:31 AM
Hi

Firstly, I've spent a couple of months struggling with 2 of your competitor media servers and I am further ahead in one evening with Mezzmo than all the time spent with the others. There's clearly an incredible amount of work and research that has gone into the device profiles. I amazed that you've got my LG LE 8900 2010 TV to work as I know it's a real pig and calls itself DLNA, but scratch beneath the surface and its only for JPEG support. It doesn't even register in device spy as a uPNP device......so well done cracking product.

So my issue.
FFMPEG is screaming away at 100% when transcoding DTS > AC3. I can stream an AVCHD/H264 with AC3 either m2ts or MKV no problem. FFMPEG ticks over between 0-10%. The computer is an i7 920 6GB RAM, striped SSDs 4TB of standard disk running Windows 7 x64 so PC grunt is not the problem.

Here's one that streams beautifully:
ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config
libavutil 51. 22. 0 / 51. 22. 0
libavcodec 53. 21. 0 / 53. 21. 0
libavformat 53. 16. 1 / 53. 16. 1
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 44. 0 / 2. 44. 0
libswscale 2. 1. 0 / 2. 1. 0
[NULL @ 036A6B80] start time is not set in estimate_timings_from_pts
[NULL @ 036ACE00] start time is not set in estimate_timings_from_pts
Input #0, mpegts, from 'H:\Temp\00001.m2ts':
Duration: 01:58:06.12, start: 11.608967, bitrate: 34578 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1100]: Audio: truehd (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), s32
Stream #0:2[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), s16, 640 kb/s
Stream #0:3[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:4[0x1201]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
At least one output file must be specified


---> DB Level Info: 41, 100
---> Frame rate: 23.98
---> Aspect ratio: 16:9

Here's one that is transcoding the DTS with CPU 100%

ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config
libavutil 51. 22. 0 / 51. 22. 0
libavcodec 53. 21. 0 / 53. 21. 0
libavformat 53. 16. 1 / 53. 16. 1
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 44. 0 / 2. 44. 0
libswscale 2. 1. 0 / 2. 1. 0
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 2 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 2 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
[mp3 @ 037FBA40] Header missing
Last message repeated 2 times
[mp3 @ 03801960] Header missing
Last message repeated 1 times
[mpegts @ 01458440] max_analyze_duration 5000000 reached at 5004000
[NULL @ 037293C0] start time is not set in estimate_timings_from_pts
[NULL @ 0372F6C0] start time is not set in estimate_timings_from_pts
[NULL @ 03735980] start time is not set in estimate_timings_from_pts
[NULL @ 0373BAC0] start time is not set in estimate_timings_from_pts
[NULL @ 03741A00] start time is not set in estimate_timings_from_pts
[NULL @ 03747960] start time is not set in estimate_timings_from_pts
[NULL @ 0374DA40] start time is not set in estimate_timings_from_pts
[NULL @ 037539C0] start time is not set in estimate_timings_from_pts
[NULL @ 03759AA0] start time is not set in estimate_timings_from_pts
[NULL @ 0375FA00] start time is not set in estimate_timings_from_pts
[NULL @ 037A12A0] start time is not set in estimate_timings_from_pts
[NULL @ 037A97A0] start time is not set in estimate_timings_from_pts
[NULL @ 037B16A0] start time is not set in estimate_timings_from_pts
[NULL @ 037B75A0] start time is not set in estimate_timings_from_pts
[NULL @ 037BD4A0] start time is not set in estimate_timings_from_pts
[NULL @ 037C33C0] start time is not set in estimate_timings_from_pts
[NULL @ 037C92C0] start time is not set in estimate_timings_from_pts
[NULL @ 037CF1C0] start time is not set in estimate_timings_from_pts
[NULL @ 037D50C0] start time is not set in estimate_timings_from_pts
[NULL @ 037DAFE0] start time is not set in estimate_timings_from_pts
[NULL @ 037E0EE0] start time is not set in estimate_timings_from_pts
[NULL @ 037E6DE0] start time is not set in estimate_timings_from_pts
[NULL @ 037ECCE0] start time is not set in estimate_timings_from_pts
[NULL @ 037F5B40] start time is not set in estimate_timings_from_pts

Seems stream 0 codec frame rate differs from container frame rate: 47.95 (48000/1001) -> 23.98 (48000/2002)

Seems stream 32 codec frame rate differs from container frame rate: 47.95 (48000/1001) -> 23.98 (48000/2002)

Seems stream 33 codec frame rate differs from container frame rate: 47.95 (48000/1001) -> 23.98 (48000/2002)
Input #0, mpegts, from 'H:\Temp\00010.m2ts':
Duration: 01:54:46.41, start: 11.650667, bitrate: 36398 kb/s
Program 1
Stream #0:0[0x1011]: Video: vc1 (Advanced) (VC-1 / 0x312D4356), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1100]: Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.1(side), s16, 1536 kb/s
Stream #0:2[0x1101]: Audio: dts (DTS) ([130][0][0][0] / 0x0082), 48000 Hz, 5.1(side), s16, 768 kb/s
Stream #0:3[0x1102]: Audio: dts (DTS) ([130][0][0][0] / 0x0082), 48000 Hz, 5.1(side), s16, 768 kb/s
Stream #0:4[0x1103]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, s16, 192 kb/s
Stream #0:5[0x1104]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, s16, 192 kb/s
Stream #0:6[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:7[0x1201]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:8[0x1202]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:9[0x1203]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:10[0x1204]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:11[0x1205]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:12[0x1206]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:13[0x1207]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:14[0x1208]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:15[0x1209]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:16[0x120a]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:17[0x120b]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:18[0x120c]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:19[0x120d]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:20[0x120e]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:21[0x120f]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:22[0x1210]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:23[0x1211]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:24[0x1212]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:25[0x1213]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:26[0x1214]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:27[0x1215]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:28[0x1216]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:29[0x1217]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:30[0x1a00]: Audio: mp1 ([162][0][0][0] / 0x00A2), 0 channels, s16
Stream #0:31[0x1a01]: Audio: mp3 ([162][0][0][0] / 0x00A2), 0 channels, s16
Stream #0:32[0x1b00]: Video: vc1 (Advanced) (VC-1 / 0x312D4356), yuv420p, 720x480 [SAR 40:33 DAR 20:11], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:33[0x1b01]: Video: vc1 (Advanced) (VC-1 / 0x312D4356), yuv420p, 720x480 [SAR 40:33 DAR 20:11], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
At least one output file must be specified


---> DB Level Info: 3, 3
---> Frame rate: 23.98
---> Aspect ratio: 16:9


Andy

Paul
11-02-2011, 10:18 AM
Hello Andy,

Thank you for the positive feedback - we appreciate it! :)

The second file is doing a full transcode, thus FFmpeg is using as much CPU as it can get. The first file is a simple remux, where we keep the video as-is and just transcode the audio. I'm not sure that the TV supports VC1 video. One way to test is to turn off transcoding and see if the file plays (with or without audio - doesn't matter). Alternatively, if you could upload it (or a smaller, but similar sample) to a site like www.megaupload.com, I could test it here and see if it could be supported natively on the TV or not.

Diesel
11-02-2011, 12:22 PM
Dennis thanks..

So..I don't think it's an issue with VC1.

With transcoding disabled, the HD m2ts good and bad files play albeit, stuttering and buffering like crazy. I guess you're lowering the levels and remuxing into a suitable container.

I have also got the bad file remuxed into an MKV (just the H264 and the 1 DTS audio track). The file plays very smoothly without transcoding.

The moment I turn on transcoding, whether m2ts or MKV, if it has to transcode the audio from DTS to AC3, all six cores will max out to 100%.

Thx

Andy

Paul
11-02-2011, 12:33 PM
Andy,

Generally audio transcoding is very quick and not CPU-intensive.

In the case of the particular file above, the CPU usage is caused by doing a full transcode of the VC1 video stream? If you remux an h264 video stream into an MKV, then Mezzmo will also remux it, if needed, which is not CPU intensive (or just stream it natively, if it fits within the device profile).

Can you please post FFmpeg information on the file that you've remuxed the above file to? It doesn't have an h264 video stream, at least in the FFmpeg information you've posted, so it'd be interesting to see what the resulting file actually is.

Diesel
11-02-2011, 01:07 PM
Dennis,

sorry I'm getting my H264s and VC-1s mixed up. You're right my remux is simply a .vc1 & .dts in an MKV container.

Here is the media info and FFMPEG output for the same VC1 file in the m2ts & mkv container.

General
ID : 0 (0x0)
Complete name : H:\Temp\00010.m2ts
Format : BDAV
Format/Info : Blu-ray Video
File size : 29.2 GiB
Duration : 1h 54mn
Overall bit rate mode : Variable
Overall bit rate : 36.4 Mbps
Maximum Overall bit rate : 48.0 Mbps

Video #1
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : VC-1
Format profile : AP@L3
Codec ID : 234
Duration : 1h 54mn
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy

Audio #1
ID : 4352 (0x1100)
Menu ID : 1 (0x1)
Format : DTS
Format/Info : Digital Theater Systems
Format profile : MA / Core
Muxing mode : Stream extension
Codec ID : 134
Duration : 1h 54mn
Bit rate mode : Variable
Bit rate : 1 576 Kbps / 1 510 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Compression mode : Lossless / Lossy

ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config

Stream #0:0[0x1011]: Video: vc1 (Advanced) (VC-1 / 0x312D4356), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1100]: Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.1(side), s16, 1536 kb/s


General
Unique ID : 238346522558944708938505492841700732601 (0xB34FDED8AC8FE9E19541219C98FB2EB9)
Complete name : H:\Temp\GREEN_ZONE_DTS.mkv
Format : Matroska
Format version : Version 2
File size : 22.7 GiB
Duration : 1h 54mn
Overall bit rate mode : Variable
Overall bit rate : 28.3 Mbps
Encoded date : UTC 2011-10-24 20:25:30
Writing application : mkvmerge v5.0.1 ('Es ist Sommer') built on Oct 9 2011 11:55:43
Writing library : libebml v1.2.2 + libmatroska v1.3.0

Video
ID : 1
Format : VC-1
Format profile : AP@L3
Codec ID : WVC1
Codec ID/Hint : Microsoft
Duration : 1h 54mn
Bit rate : 26.1 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.526
Stream size : 21.0 GiB (92%)

Audio
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Format profile : MA / Core
Muxing mode : Header stripping
Codec ID : A_DTS
Duration : 1h 54mn
Bit rate mode : Variable
Bit rate : 1 576 Kbps / 1 510 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Compression mode : Lossless / Lossy

ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config

Stream #0:0: Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1: Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s16, 1536 kb/s (default)


In summary:
the mkv plays fine when not transcoding but no sound
the m2ts plays but buffers and stutters like crazy when not transcoding & no sound

so maybe I could tweak the LGTV profile so VC1 is not transcoded but everything else takes place to ensure smooth delivery.

What do you think? If a good idea would be grateful for a snippet of xml

Thx

Andy

Paul
11-02-2011, 02:26 PM
Andy,

It appears that you've cut out some information from the FFmpeg output, which is what I need more than MediaInfo, so I don't know the exact bitrates for those files, but I'll take a guess.

Try editing the LGTV.prf (let me know if you need help on how to do this) and change the "matroska" container to be like:



<avcontainer id="matroska" name="mkv" encode="0" mimetype="video/x-matroska" preferredtranscoded="0" format="matroska" supportschunked="0" level="51">
<video>
<format id="mpeg4" encode="0">
</format>
</video>
<video>
<format id="h264" encode="0">
</format>
</video>
<video>
<format id="mpeg2video" encode="0">
</format>
</video>
<video>
<format id="vc1" encode="0">
<maxbitrate>15000000</maxbitrate>
</format>
</video>
<audio>
<format id="ac3" encode="0">
</format>
</audio>
<audio>
<format id="aac" encode="0">
</format>
</audio>
<audio>
<format id="mp3" encode="0">
</format>
</audio>
</avcontainer>


This will add VC1 support to MKVs, but force files with VC1 video that's higher than 15Mbit/s to be transcoded.

Also, change "vc1" format in "mpegts" container to be like:



<video>
<format id="vc1" encode="0">
<maxbitrate>15000000</maxbitrate>
</format>
</video>


Unfortunately current FFmpeg cannot encode VC1, so we cannot remux it either, thus all VC1 files that have high bitrates will have to be fully transcoded to h264.

Turn transcoding back on and see what this produces and please let me know how it goes.

Diesel
11-03-2011, 09:48 AM
Hi Derek,

Applied those changes, but same problem - 100% CPU with that VC-1 file.

I tried a different movie - remuxed H264 + dts in a MKV and it played perfectly. Around 5-8%CPU transcoding the audio only.

So there's no way we can passthrough the VC-1 stream completely and just transcode the audio??

BTW. Here's the full FFMEP output from the VC-1 file.

ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config
libavutil 51. 22. 0 / 51. 22. 0
libavcodec 53. 21. 0 / 53. 21. 0
libavformat 53. 16. 1 / 53. 16. 1
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 44. 0 / 2. 44. 0
libswscale 2. 1. 0 / 2. 1. 0

Seems stream 0 codec frame rate differs from container frame rate: 47.95 (48000/1001) -> 23.98 (48000/2002)
Input #0, matroska,webm, from 'H:\Temp\GREEN_ZONE_DTS.mkv':
Duration: 01:54:46.42, start: 0.000000, bitrate: 28272 kb/s
Stream #0:0: Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1: Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s16, 1536 kb/s (default)
At least one output file must be specified


---> DB Level Info: 3, 3
---> Frame rate: 23.98
---> Aspect ratio: 16:9



thx

Andy

Paul
11-03-2011, 10:03 AM
Hi Derek,

Who's Derek? ;)



Applied those changes, but same problem - 100% CPU with that VC-1 file.

I tried a different movie - remuxed H264 + dts in a MKV and it played perfectly. Around 5-8%CPU transcoding the audio only.

So there's no way we can passthrough the VC-1 stream completely and just transcode the audio??

Yes, as I said, FFmpeg cannot encode VC1 at the moment, thus they cannot be remuxed like h264. Hopefully a future build of FFmpeg will allow encoding VC1 - we are constantly building new FFmpeg's to see what has changed and Mezzmo updates always come with the latest build.

Diesel
11-08-2011, 10:07 AM
Hi Dennis

Purely on the strength of this support, you got my 30 bucks this evening (before you put the price up ;-) )

Can I be cheeky and shoot you a few quick questions

Am I right in making the following assessment on subtitles:
BD .sup files, no support. Support for .srt when labelled correctly and put in the same folder. Looking to support embedded subtitles in future release.

Request for Nvidia CUDA and latest Intel CPU support for VC1 to H264 conversion.

What is the LG LE TV xml profile in the latest build? I have an LE8900 but it seems to be using the regular LGTV . Could the LE profile be a child of the LGTV parent??

I’ve selected nice internet album art for video titles. Shows in the Mezzmo interface, but doesn’t in the LG TV interface. Am I doing something dumb or is it just a constraint of the TV.

When fast forwarding too far ahead, the movie often bombs out and goes back to the beginning or the next film. Is that to be expected with only a partially transcoded file?

I want to see if the LG can handle any kind of chapter meta data. Shall I follow the Samsung sticky – i.e. could the same process be theoretically followed.

Anything interesting in the FFMPEG build released yesterday?
libavutil 51. 24. 0 / 51. 24. 0
libavcodec 53. 28. 0 / 53. 28. 0
libavformat 53. 19. 0 / 53. 19. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 47. 0 / 2. 47. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0

Request for Tapatalk or similar for forum on IOS

Always happy to beta test any new developments. Set-up is as follows.

LG LE8900 TV (2010). Sony BD S570 – all UK spec. both devices wired.
PC Windows 7 x64, i7 920, 6GB RAM, striped SSDs system drive, 6TB of additional storage, Nvidia Geforce GTX 275.
iPad & iPhone using 8player

kind regards

Andy

Diesel
11-08-2011, 10:07 AM
Hi Dennis

Purely on the strength of this support, you got my 30 bucks this evening (before you put the price up ;-) )

Can I be cheeky and shoot you a few quick questions

Am I right in making the following assessment on subtitles:
BD .sup files, no support. Support for .srt when labelled correctly and put in the same folder. Looking to support embedded subtitles in future release.

Request for Nvidia CUDA and latest Intel CPU support for VC1 to H264 conversion.

What is the LG LE TV xml profile in the latest build? I have an LE8900 but it seems to be using the regular LGTV . Could the LE profile be a child of the LGTV parent??

I’ve selected nice internet album art for video titles. Shows in the Mezzmo interface, but doesn’t in the LG TV interface. Am I doing something dumb or is it just a constraint of the TV.

When fast forwarding too far ahead, the movie often bombs out and goes back to the beginning or the next film. Is that to be expected with only a partially transcoded file?

I want to see if the LG can handle any kind of chapter meta data. Shall I follow the Samsung sticky – i.e. could the same process be theoretically followed.

Anything interesting in the FFMPEG build released yesterday?
libavutil 51. 24. 0 / 51. 24. 0
libavcodec 53. 28. 0 / 53. 28. 0
libavformat 53. 19. 0 / 53. 19. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 47. 0 / 2. 47. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0

Request for Tapatalk or similar for forum on IOS

Always happy to beta test any new developments. Set-up is as follows.

LG LE8900 TV (2010). Sony BD S570 – all UK spec. both devices wired.
PC Windows 7 x64, i7 920, 6GB RAM, striped SSDs system drive, 6TB of additional storage, Nvidia Geforce GTX 275.
iPad & iPhone using 8player

kind regards

Andy

Paul
11-08-2011, 10:26 AM
Hi Dennis

Purely on the strength of this support, you got my 30 bucks this evening (before you put the price up ;-) )

Hi Andy,

Thanks - appreciated :)



Am I right in making the following assessment on subtitles:
BD .sup files, no support. Support for .srt when labelled correctly and put in the same folder. Looking to support embedded subtitles in future release.

Yes, burned-in or embedded subtitles are coming in Mezzmo v3.



Request for Nvidia CUDA and latest Intel CPU support for VC1 to H264 conversion.

Need to wait for FFmpeg developers to advance in this area. Mezzmo v2.4.5 includes support for DXVA.



What is the LG LE TV xml profile in the latest build? I have an LE8900 but it seems to be using the regular LGTV . Could the LE profile be a child of the LGTV parent??

That profile has been there since Mezzmo v2.3.0 actually :) It supports a bit less than the "LG TV" one, but works better for some particular firmware versions. I wouldn't rely on auto-detection, as hardware manufacturers are known not to make their firmware ids unique. Try the "LE" profile if you are having issues with the other one.



I’ve selected nice internet album art for video titles. Shows in the Mezzmo interface, but doesn’t in the LG TV interface. Am I doing something dumb or is it just a constraint of the TV.

Our TV here doesn't display video artwork - it's not supported by the firmware. Perhaps it's the same for you as well. Unfortunately nothing we can do here, unless LG fix this up.



When fast forwarding too far ahead, the movie often bombs out and goes back to the beginning or the next film. Is that to be expected with only a partially transcoded file?

That can happen if you are trying to FF past the currently transcoding point. Let's say a video is playing at 25 fps and your transcoding speed is 100 fps. This means if you FF quicker than 4x, you'll hit the end of transcoding sooner or later.



I want to see if the LG can handle any kind of chapter meta data. Shall I follow the Samsung sticky – i.e. could the same process be theoretically followed.

If you mean the chaptering files, then these are specific to Samsung. The LG may (or may not) support chaptering in video files (such as MKVs).



Anything interesting in the FFMPEG build released yesterday?
libavutil 51. 24. 0 / 51. 24. 0
libavcodec 53. 28. 0 / 53. 28. 0
libavformat 53. 19. 0 / 53. 19. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 47. 0 / 2. 47. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0

Not really. We already built one even later than that (always testing new stuff here).



Request for Tapatalk or similar for forum on IOS

I think vBulletin has a mobile theme somewhere - is that what you mean?



Always happy to beta test any new developments. Set-up is as follows.

Thanks! :)

Diesel
11-11-2011, 06:59 AM
Morning Dennis

Can you give me a few pointers on diagnostic logging.

Most films play really well, but occasionally they break (they stop, loading icon appears and bounce back to the beginning or next film). Mezzmo's playing H264 directly or doing a gentle remux on the audio, NIC looks fine, in fact everything looks fine.

So 2 scenarios.
1. Film breaks at a random point - replaying again through that point is fine.
2. Film breaks at a specific point and will keep breaking at this point.

Just wondering if the device will send any meaningful data back to Mezzmo. What do you use in the Lab? I can't even see the LG LE TV 2010 using Device spy or uPnP Inspector.

Thx

Andy

Paul
11-11-2011, 09:48 AM
Morning Andy,

Unfortunately the TV, or any other device for that matter, does not tell us what's wrong. All we can get from the logs is the moment where it breaks and look around for any unusual activity. We've got a bunch of TVs, BDP players, media players and XBox/PS3 here that we use for testing (as well as some tablets and phones).

The first scenario is probably the worst and hardest to catch/fix - it could be anything, even things like your antivirus, search indexer or disk defrag kicking off or it could be hardware-related, such as USB controllers starting to fail.

The second scenario usually means one of two things: either the file is being transcoded and transcoding fails at that point, or the file is being served natively, but at that point it's encoded in a way that breaks the firmware player on your TV. The second will be solvable once the pre-transcoding feature is released, as you could try and force-transcode that file. The first is harder, as we need to wait for FFmpeg developers to fix bugs.

Diesel
11-13-2011, 11:38 AM
Thanks for the detailed response.

I'm totally beat on the one below.

The first file wants to do a full transcode (100% CPU), where as the 2nd file just transcodes the audio (10% CPU) as expected. They're both H264 and the video properties look identical.

What do you reckon?

Andy

ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config
libavutil 51. 22. 0 / 51. 22. 0
libavcodec 53. 21. 0 / 53. 21. 0
libavformat 53. 16. 1 / 53. 16. 1
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 44. 0 / 2. 44. 0
libswscale 2. 1. 0 / 2. 1. 0
[NULL @ 012E0900] start time is not set in estimate_timings_from_pts
Input #0, mpegts, from 'H:\M2TS\BLITZ.m2ts':
Duration: 01:37:29.01, start: 599.958311, bitrate: 31022 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1100](eng): Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.1(side), s16, 768 kb/s
Stream #0:2[0x1200](eng): Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
At least one output file must be specified


---> DB Level Info: 41, 100
---> Frame rate: 23.98
---> Aspect ratio: 16:9


ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config
libavutil 51. 22. 0 / 51. 22. 0
libavcodec 53. 21. 0 / 53. 21. 0
libavformat 53. 16. 1 / 53. 16. 1
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 44. 0 / 2. 44. 0
libswscale 2. 1. 0 / 2. 1. 0
[NULL @ 030A0920] start time is not set in estimate_timings_from_pts
Input #0, mpegts, from 'H:\M2TS\THE_FIGHTER.m2ts':
Duration: 01:55:38.54, start: 599.958300, bitrate: 35560 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1100](eng): Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.1(side), s16, 1536 kb/s
Stream #0:2[0x1200](eng): Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
At least one output file must be specified


---> DB Level Info: 41, 100
---> Frame rate: 23.98
---> Aspect ratio: 16:9

Paul
11-14-2011, 10:17 AM
Without seeing the logs, my guess would be that we try to remux both files, but the first fails remuxing and thus Mezzmo starts to do a full transcode on it (this happens automatically).

Diesel
11-25-2011, 08:46 AM
Morning down under!

Forgive me for jumping around with different subjects - kick me off to another thread if you want.

I can't get a video to play at all on an iPhone with 8player. Sometimes I get an initialisation error other times it just jumps back to the first screen after trying to load the movie. I'm using the 8player profile in Mezzmo and a native format albeit very high quality (plays fine when copied to iphone or ipad).

I've also observed what I think could be strange behaviour.

Go to open movie on iPhone. Mezzmo opens 1 ffmpeg process and 2 secs later opens a 2nd one. Both running at 45% CPU (90% in total - not completely max'd)
File fails, one ffmpeg process closes. The 2nd ffmpeg continues runing even after closing mezmo.exe and mezmoserver.exe. I also don't have 'continue transcoding for partially completed..." checked. Stopping and restarting the server makes no difference either.

Here's the ffmpeg output of the file I'm trying to stream.

ffmpeg version N-33781-g35674a2, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 19 2011 10:31:16 with gcc 4.6.1
configuration: --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-static --disable-shared --enable-zlib --disable-postproc --prefix=/media/ffmpeg --enable-libmp3lame --enable-libx264 --enable-gpl --extra-libs='-lx264 -lpthread' --enable-runtime-cpudetect --extra-cflags=-I/home/dennis/cc/include --extra-ldflags=-L/home/dennis/cc/lib --pkg-config=pkg-config
libavutil 51. 22. 0 / 51. 22. 0
libavcodec 53. 21. 0 / 53. 21. 0
libavformat 53. 16. 1 / 53. 16. 1
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 44. 0 / 2. 44. 0
libswscale 2. 1. 0 / 2. 1. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'I:\iPhone_iPAD\GET_HIM_TO_THE_GREEK.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 1970-01-01 00:00:00
date : 08 November 2011 12:10:29
encoder : Lavf52.32.0
Duration: 01:53:51.46, start: 0.000000, bitrate: 4155 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 3991 kb/s, 30 fps, 30 tbr, 30030 tbn, 60 tbc
Metadata:
creation_time : 1970-01-01 00:00:00
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 159 kb/s
Metadata:
creation_time : 1970-01-01 00:00:00
At least one output file must be specified


---> DB Level Info: 31, 578
---> Frame rate: 30.00
---> Aspect ratio: 16:9

thx

Andy

BTW. What's cooking? 2.4.5's been out there for 5 weeks? ;-)

Paul
11-25-2011, 09:45 AM
The maximum bitrate specified by that profile is 2000 kb/s, but the file is 4155 kb/s, thus it needs to be transcoded. If you have background transcoding turned off, then the file will stop transcoding once the player stops requesting it (after a short delay in reality), however, MP4 files cannot be transcoded/played in real time because they have a MOOV ATOM that needs to be placed at the beginning of the file, which can only be done after the whole file finishes transcoding, however, it won't finish because background transcoding is turned off :)

We're finishing testing 2.5 - the major feature of that being pre-transcoding as well as a bunch of other goodies. Not too far away now.

Diesel
11-25-2011, 10:13 AM
Ok, so in summary, if not under 2000kb it will transcode. - normal. Kick start the movie with background transcoding on. Regardless whether the movie plays or not let ffmpeg run in the background. When background transcoding finished replay movie and it should work?
Just to confirm - is it normal behaviour that 2 instances of ffmpeg are invoked?

Paul
11-25-2011, 10:17 AM
Yes, basically sounds right. Once pre-transcoding is released, this will be much simpler of course, as you'd prepare those files in advance.

Two FFmpegs shouldn't be running, but I need to see logs to understand why. Perhaps it's because background transcoding is turned off, or the phone moved on to the next file.

Paul
01-06-2012, 05:39 PM
Just an update - Mezzmo v2.5 has been released and it includes the 'pre-transcoding' features that have been discussed in this thread.

Roofus
02-22-2012, 06:52 AM
Hi

Did you ever resolve this, i'm testing my ipod and i am getting exactly the same problem with 2 FFmpegs running, its not the ipod, its turned off. I am pre-transcoding to make sure i get 100% file created for the file attributes etc for the ipod to work.

I did wait till the pre-transcode finished and then try to view it but it just restarted transcoding, 95%-100% cpu on FFmpegs, even killed my wifi link, all locked up until the transcode finished. I did a full reboot and re-test but the same results.

Steve

Paul
02-22-2012, 09:53 AM
Yes, pre-transcoding can sometimes trigger two FFmpegs to run at the same time - we're looking into this and it should be fixed for the upcoming 2.5.1 release.