0

I've got a couple of 1080p videos that I'd like to play in my Raspberry Pi (512 MB). This is part of a project I'm doing with a couple of friends. We built a server in Node.js and use a local client to connect to the server and to play these files at a given time.

Unfortunately, I've found out that many videos lag badly in Omxplayer. I have the latest Raspbian - hard-float, not using Xorg - overclocked to 1000MHz and giving the GPU 256MB of RAM didn't seen to help (I've since changed the speed to 950MHz, by the way).

Now, I understand that the Raspberry is somewhat limited but what surprises me is that videos such as this one (please ignore the header, I found the picture on Google Images) - a 100 MB MKV with a nominal bit rate of 40Mbps - runs better than some of the videos we're trying to play.

Here's the mediainfo output for the birds video:

General
Complete name                            : birds.mkv
Format                                   : Matroska
Format version                           : Version 1
File size                                : 110 MiB
Duration                                 : 23s 65ms
Overall bit rate                         : 39.9 Mbps
Writing application                      : x264
Writing library                          : Haali Matroska Writer b0

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 23s 65ms
Bit rate                                 : 39.1 Mbps
Nominal bit rate                         : 42.0 Mbps
Width                                    : 1 920 pixels
Height                                   : 1 072 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 23.976 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.792
Stream size                              : 107 MiB (98%)
Writing library                          : x264 core 60 r886M 1075536
Encoding settings                        : cabac=1 / ref=4 / deblock=1:-2:-2 / analyse=0x3:0x113 / me=umh / subme=6 / rdcmp=psy / brdo=1 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=0 / threads=6 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40(pre) / rc=abr / bitrate=42000 / ratetol=0.1 / rceq='blurCplx^(1-qComp)' / qcomp=1.00 / qpmin=2 / qpmax=51 / qpstep=4 / ip_ratio=1.40 / pb_ratio=1.30 / aq=2:1.00
Language                                 : English
Default                                  : Yes
Forced                                   : No

In comparison, here is the mediainfo output of a much smaller video (with a lower nominal bit rate) that lags much worse:

    General
    Complete name                            : F_AVANCADO
    Format                                   : MPEG-4
    Format profile                           : Base Media / Version 2
    Codec ID                                 : mp42
    File size                                : 46.7 MiB
    Duration                                 : 1mn 21s
    Overall bit rate mode                    : Constant
    Overall bit rate                         : 4 798 Kbps
    Encoded date                             : UTC 2012-05-08 14:20:20
    Tagged date                              : UTC 2012-05-08 14:20:20

    Video
    ID                                       : 1
    Format                                   : AVC
    Format/Info                              : Advanced Video Codec
    Format profile                           : Main@L4.0
    Format settings, CABAC                   : Yes
    Format settings, ReFrames                : 3 frames
    Codec ID                                 : avc1
    Codec ID/Info                            : Advanced Video Coding
    Duration                                 : 1mn 21s
    Bit rate mode                            : Constant
    Bit rate                                 : 20.0 Mbps
    Width                                    : 1 920 pixels
    Height                                   : 1 080 pixels
    Display aspect ratio                     : 16:9
    Frame rate mode                          : Constant
    Frame rate                               : 25.000 fps
    Standard                                 : PAL
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 8 bits
    Scan type                                : Progressive
    Bits/(Pixel*Frame)                       : 0.386
    Stream size                              : 194 MiB
    Language                                 : English
    Encoded date                             : UTC 2012-05-08 14:20:20
    Tagged date                              : UTC 2012-05-08 14:20:20

Here's the output of another file that also lags a lot:

General
Complete name                            : F_CC_24
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42
File size                                : 9.92 MiB
Duration                                 : 32s 0ms
Overall bit rate                         : 2 600 Kbps
Encoded date                             : UTC 2012-12-15 02:13:32
Tagged date                              : UTC 2012-12-15 02:13:32

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L4.0
Format settings, CABAC                   : No
Format settings, ReFrames                : 2 frames
Format settings, GOP                     : M=2, N=24
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 32s 0ms
Bit rate                                 : 2 597 Kbps
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.050
Stream size                              : 9.91 MiB (100%)
Language                                 : English
Encoded date                             : UTC 2012-12-15 02:13:06
Tagged date                              : UTC 2012-12-15 02:13:32
Color primaries                          : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics                 : BT.709-5, BT.1361
Matrix coefficients                      : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

What's causing this? Shouldn't these smaller videos run much better than the huge Mkv?

Bonus question: All of these videos run great in OpenElec, but we didn't really wanted to use it because of all the client-side code we've already done.

What kind of demonry does OpenElec use in order to be able to play these files flawlessly?

1

Check the frame rate, the former video is clearly NTSC (23.976fps) and the latter two are PAL (25fps), your omxplayer might be trying too hard to convert the frame rate to fit your TV setup.

Regarding the OpenElec part, I'd recommend you to find the "middle ground" and start from RaspBMC distribution, that is based on Raspbian but on the other hand is well known as a stable and fast video player.

  • I tried converting a couple of videos to NTSC but it didn't work... Would more reference frames help? Thanks for the heads-up regarding RaspBMC, looks great – João Pereira May 16 '13 at 11:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.