VideoHelp Forum
+ Reply to Thread
Results 1 to 7 of 7
Thread
  1. I have a Sony Smart LED TV that supports playback of MP4 video files from a USB (in addition to a litany of other video formats). However, it refuses to play an MP4 video I recently created, even though the MP4 video plays fine on a PC in WMP and MPC. I am guessing there is a problem somewhere in my workflow. Here is what I am doing:
    1. Frameserve video only from PPro using DMFS to avisynth then x264.exe to encode as an elementary .264 video stream.
    Avisynth signpost.avs script:
    Code:
    AVISource("E:\signpost.avi", audio=false).AssumeFPS(30000,1001)
    ConvertToYV12()
    x264.exe cli command:
    Code:
    x264.exe --preset slow --tune film --crf 20 -o "video.264" "signpost.avs"
    2. Encode the audio using AME as an elementary .aac file.

    3. Wrap the video.264 and audio.aac files into an output.mp4 container using MP4box:

    Code:
    mp4box.exe -add "E:\video.264:fps=29.97" -add "E:\audio.aac" "E:\output.mp4"
    All very simple straightforward commands. So I am puzzled why my TV would choke on the file. Any thoughts?
    Quote Quote  
  2. If it's the same video from your other post, it's Level 5 - most TV's and devices currently are limited to High@L4.1

    PC software players don't have any restrictions, but when creating video for a target device, you need to encode with restrictions because they have fixed function silicon decoders with limited capabilities
    Quote Quote  
  3. pdr, yes, your memory serves you well . It is the same video. And wow, not only that, your knowledge of this stuff is simply stunning! So now my question is, where did the High@L5.0 creep in? Up until now, I have never once given thought to the profile levels. I looked through the encoding settings and nothing stands out that indicates where this was triggered. Perhaps the --tune film setting?
    Quote Quote  
  4. --preset slow specifies 5 reference frames, but you need to limit reference frames to 4 at 1920x1080 resolution for L4.1

    There is a chart here if you want more info
    http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels

    You should limit and place VBV restrictions when encoding for devices, because they can run out of buffer and you'll get stuttering. Use values suitable for your device. For TV's if you go with blu-ray limits it should be ok
    Quote Quote  
  5. Awesome, thanks. That list of profiles on wiki is pretty dizzying. Limit of 4 reference frames, got it. After googling this some more, I now see where the reference frames setting comes in: ref=5. So would it be as simple as setting --ref 4?

    Code:
    x264.exe --preset slow --ref 4 --tune film --crf 20 -o "video.264" "signpost.avs"
    Or, I also see there is a level switch:

    Code:
    x264.exe --preset slow --level 4.1 --tune film --crf 20 -o "video.264" "signpost.avs"
    Or, should I back off the speed setting and use something faster? Or, should I go with a completely bespoke setting in x264 and avoid a preset?

    As always thanks for imparting your knowledge and wisdom
    Quote Quote  
  6. Any command after the --preset setting will override or update those settings

    So just add --ref 4, and some vbv restrictions

    Level limits aren't actually enforced with x264, even if you specify VBV constraints (they were supposed to be at one point in time, but it will just give you a warning) . But it doesn't hurt to specify level or profile

    Code:
    x264.exe --preset slow --level 4.1 --ref 4 --tune film --crf 20 -vbv-maxrate 40000 --vbv-bufsize 40000 -o "video.264" "signpost.avs"
    Quote Quote  
  7. Rock n roll! Thanks PDR. You da man!
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!