Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

labyrinth153

macrumors regular
Jul 16, 2017
110
74
Pittsburgh, PA
I had an average of 166fps converting to h.264 (super high quality preset/x264 software encoder) at 720p. I converted 80 large files and I did not notice any noise, heat, or slowdowns.
 
  • Like
Reactions: SWAON

JimmyjamesEU

Suspended
Jun 28, 2018
397
426
I've seen reports that the intel hardware encoder (Quick Sync) produces better results than Apple's. :confused:
I'd be really interested to see these reports. Quick Sync is ok, not that great, the problem is on macOS, VideoToolbox doesnt allow constant quality as a method of encoding, just bitrate, so files tend to be much bigger, or much worse quality! I can't imagine Apple's encoder would be worse, given the iPhone's video recording quality, but time will tell I guess.
 

Gnattu

macrumors 65816
Sep 18, 2020
1,107
1,672
I'd be really interested to see these reports. Quick Sync is ok, not that great, the problem is on macOS, VideoToolbox doesnt allow constant quality as a method of encoding, just bitrate, so files tend to be much bigger, or much worse quality! I can't imagine Apple's encoder would be worse, given the iPhone's video recording quality, but time will tell I guess.
On pre T2 Macs, VideoToolbox uses Intel QSV as the underlying encoder for VideoToolBox. VideoToolBox does have a "quality" parameter, but the definition of the quality is different from cq. It's a number ranged from 0 to 1, where 1.0 is lossless.
 

Ritsuka

Cancelled
Sep 3, 2006
1,464
969
"Quality" parameter does not work on Intel QSV. In my testing you can put any value in it and the result will always be the same on Intel.
 

SWAON

Suspended
Sep 2, 2017
390
537
Europe
I had an average of 166fps converting to h.264 (super high quality preset/x264 software encoder) at 720p. I converted 80 large files and I did not notice any noise, heat, or slowdowns.
What preset would you recommend for 720p (1080p) videos with 29.98fps for best quality and best smaller size possible? I want to shrink my tv series collection a lot.
 

Gnattu

macrumors 65816
Sep 18, 2020
1,107
1,672
I've dumped the supported encoder information on M1, and I found some pretty interesting thing.
It seems like M1 does support HEVC_Main10 even at 444, and handbrake is not using that now.
Code:
Encoder: Apple HEVC (HW)
    Codec Type: HEVC/H.265
    Encoder ID: com.apple.videotoolbox.videoencoder.ave.hevc
    Codec Name: HEVC
    Encoder Name: Apple HEVC (HW)
    Supported Properties:
        iChatUsageString
            Value is read-write.
        AverageBitRate
            Value is read-write.
        DataRateLimits
            Value is read-write.
        TransferFunction
            Value is read-write.
            ITU_R_709_2
            SMPTE_240M_1995
            Linear
            IEC_sRGB
            ITU_R_2020
            SMPTE_ST_2084_PQ
            SMPTE_ST_428_1
            ITU_R_2100_HLG
            UseGamma
        FrameRateTargetForAverageBitrate
            Value is read-write.
        PoolPixelBufferAttributesSeed
        FigThreadPriority
        MaxKeyFrameIntervalDuration
            Value is read-write.
        UserRPSForFaceTime
            Value is read-write.
        ChromaLocationTopField
        RequireDeterministicDependencyAndReordering
            Value is read-write.
        ForceSliceRPS
            Value is read-write.
        MinimizeMemoryUsage
            Value is read-write.
        FieldDetail
        EnableMBInputCtrl
            Value is read-write.
        ProfileLevel
            Value is read-write.
            HEVC_Main_AutoLevel
            HEVC_Main10_AutoLevel
            HEVC_MainStill_AutoLevel
            HEVC_Main444_AutoLevel
            HEVC_Main44410_AutoLevel
            HEVC_Main42210_AutoLevel
            HEVC_Monochrome12_AutoLevel
            HEVC_Monochrome_AutoLevel
        EnableContentColourVolumeSEI
            Value is read-write.
        UsingHardwareAcceleratedVideoEncoder
            Value is read-write.
        PixelBufferPoolIsShared
        EnableWeightedPrediction
            Value is read-write.
        InputPixelFormat
            Value is read-write.
        YCbCrMatrix
            Value is read-write.
            ITU_R_709_2
            ITU_R_601_4
            SMPTE_240M_1995
            ITU_R_2020
        InputQueueMaxCount
            Value is read-write.
        SoftMinQuantizationParameter
            Value is read-write.
        ComponentRange
        AllowOpenGOP
            Value is read-write.
        ColorPrimaries
            Value is read-write.
            ITU_R_709_2
            EBU_3213
            SMPTE_C
            ITU_R_2020
            P3_D65
        HEVCTemporalLevelInfoCombinations
            Value is read-only.
        AllowTemporalCompression
            Value is read-write.
        AllocCodedBufferHalfSize
            Value is read-write.
        GammaLevel
        ICCProfile
        SoftMaxQuantizationParameter
            Value is read-write.
        ForceRefUncompressed
            Value is read-write.
        EnableUserRefForFacetime
            Value is read-write.
        InsertTrailingBytes
            Value is read-write.
        PoolPixelBufferAttributes
        HDRMetadataInsertionMode
        RealTime
            Value is read-write.
        UserParameterSetsIds
            Value is read-write.
        RequiredHEVCPictureParameterSetID
            Value is read-write.
        RequiredHEVCSequenceParameterSetID
            Value is read-write.
        DebugMetadataSEI
            Value is read-write.
        MaxQuantizationParameter
            Value is read-write.
        LossLess
            Value is read-write.
        CleanAperture
        DroppablePFramesOnly
            Value is read-write.
        UseVideoResolutionAdaptation
            Value is read-write.
        EnableParallelStitching
            Value is read-write.
        EnableStatsCollect
            Value is read-write.
        ExpectedFrameRate
            Value is read-write.
        PerceptualQualityOptimization
            Value is read-write.
        NumberOfPendingFrames
        OutputBitDepth
            Value is read-write.
        DebugMetadataSEIuseEPB
            Value is read-write.
        log2_max_minus4
            Value is read-write.
        AmbientViewingEnvironment
            Value is read-write.
        PixelAspectRatio
        ThrottleForBackground
            Value is read-write.
        Priority
            Value is read-write.
        ConvergenceDurationForAverageDataRate
            Value is read-write.
        PreserveDynamicHDRMetadata
        AuxiliaryTypeInfo
        EncodesAlpha
            Value is read-write.
        ExpectedDuration
            Value is read-write.
        MultiReferencePSpacing
            Value is read-write.
        UserDPBFramesForFaceTime
            Value is read-write.
        HEVCSyncSampleNALUnitTypes
            Value is read-only.
        Quality
            Value is read-write.
        MultiPassStorage
        EnableTimingInfoMetadata
            Value is read-write.
        EncoderUsage
            Value is read-write.
        PixelTransferProperties
        UsingMetalRegistryID
        ChromaLocationBottomField
        FieldCount
        AllowFrameReordering
            Value is read-write.
        RequiredHEVCVideoParameterSetAlphaLayerID
            Value is read-write.
        EncoderID
        AllowPixelTransfer
        VideoEncoderPixelBufferAttributes
        DeblockingFiltering
            Value is read-write.
        ContentLightLevelInfo
        ChromaQPIndexOffsetMultiPPS
            Value is read-write.
        EnableMultiReferenceP
            Value is read-write.
        MaxKeyFrameInterval
            Value is read-write.
        BaseLayerFrameRate
            Value is read-write.
        EnableUserQPForFacetime
            Value is read-write.
        MaximizePowerEfficiency
            Value is read-write.
        PrioritizeEncodingSpeedOverQuality
            Value is read-write.
        MasteringDisplayColorVolume
        QuantizationScalingMatrixPreset
            Value is read-write.
        ClientPID
        SAOMode
            Value is read-write.
        SourceFrameCount
            Value is read-write.
        CodedBuffersOverride
            Value is read-write.
        RelaxAverageBitRateTarget
            Value is read-write.
        NumberOfSlices
            Value is read-write.
 
  • Like
Reactions: mikeboss

markiv810

macrumors 6502
Sep 27, 2002
379
114
India
DVDFab is a faster option, check my benchmarks

DVDFab appears to be much more optimized. Does DVDFab do h.265. I will certainly check out DVDFab over the weekend. I have optimised many videos for my office before uploading on Youtube or when we have to share certain technical video presentations with our industry partners.
 

winna

macrumors regular
Nov 28, 2020
123
37
DVDFab appears to be much more optimized. Does DVDFab do h.265. I will certainly check out DVDFab over the weekend. I have optimised many videos for my office before uploading on Youtube or when we have to share certain technical video presentations with our industry partners.
It does H265 yes, even toolbox. Great application.
 
  • Like
Reactions: markiv810

Ritsuka

Cancelled
Sep 3, 2006
1,464
969
DVDFab uses the same exact decoders/encoders. In HandBrake make sure to disable the interlace detection and demob filter. It's enabled by default in almost every preset. The only difference is which settings you use.
 

Ritsuka

Cancelled
Sep 3, 2006
1,464
969
I've dumped the supported encoder information on M1, and I found some pretty interesting thing.
It seems like M1 does support HEVC_Main10 even at 444, and handbrake is not using that now.
Code:
Encoder: Apple HEVC (HW)
    Codec Type: HEVC/H.265
    Encoder ID: com.apple.videotoolbox.videoencoder.ave.hevc
    Codec Name: HEVC
    Encoder Name: Apple HEVC (HW)
    Supported Properties:
        iChatUsageString
            Value is read-write.
        AverageBitRate
            Value is read-write.
        DataRateLimits
            Value is read-write.
        TransferFunction
            Value is read-write.
            ITU_R_709_2
            SMPTE_240M_1995
            Linear
            IEC_sRGB
            ITU_R_2020
            SMPTE_ST_2084_PQ
            SMPTE_ST_428_1
            ITU_R_2100_HLG
            UseGamma
        FrameRateTargetForAverageBitrate
            Value is read-write.
        PoolPixelBufferAttributesSeed
        FigThreadPriority
        MaxKeyFrameIntervalDuration
            Value is read-write.
        UserRPSForFaceTime
            Value is read-write.
        ChromaLocationTopField
        RequireDeterministicDependencyAndReordering
            Value is read-write.
        ForceSliceRPS
            Value is read-write.
        MinimizeMemoryUsage
            Value is read-write.
        FieldDetail
        EnableMBInputCtrl
            Value is read-write.
        ProfileLevel
            Value is read-write.
            HEVC_Main_AutoLevel
            HEVC_Main10_AutoLevel
            HEVC_MainStill_AutoLevel
            HEVC_Main444_AutoLevel
            HEVC_Main44410_AutoLevel
            HEVC_Main42210_AutoLevel
            HEVC_Monochrome12_AutoLevel
            HEVC_Monochrome_AutoLevel
        EnableContentColourVolumeSEI
            Value is read-write.
        UsingHardwareAcceleratedVideoEncoder
            Value is read-write.
        PixelBufferPoolIsShared
        EnableWeightedPrediction
            Value is read-write.
        InputPixelFormat
            Value is read-write.
        YCbCrMatrix
            Value is read-write.
            ITU_R_709_2
            ITU_R_601_4
            SMPTE_240M_1995
            ITU_R_2020
        InputQueueMaxCount
            Value is read-write.
        SoftMinQuantizationParameter
            Value is read-write.
        ComponentRange
        AllowOpenGOP
            Value is read-write.
        ColorPrimaries
            Value is read-write.
            ITU_R_709_2
            EBU_3213
            SMPTE_C
            ITU_R_2020
            P3_D65
        HEVCTemporalLevelInfoCombinations
            Value is read-only.
        AllowTemporalCompression
            Value is read-write.
        AllocCodedBufferHalfSize
            Value is read-write.
        GammaLevel
        ICCProfile
        SoftMaxQuantizationParameter
            Value is read-write.
        ForceRefUncompressed
            Value is read-write.
        EnableUserRefForFacetime
            Value is read-write.
        InsertTrailingBytes
            Value is read-write.
        PoolPixelBufferAttributes
        HDRMetadataInsertionMode
        RealTime
            Value is read-write.
        UserParameterSetsIds
            Value is read-write.
        RequiredHEVCPictureParameterSetID
            Value is read-write.
        RequiredHEVCSequenceParameterSetID
            Value is read-write.
        DebugMetadataSEI
            Value is read-write.
        MaxQuantizationParameter
            Value is read-write.
        LossLess
            Value is read-write.
        CleanAperture
        DroppablePFramesOnly
            Value is read-write.
        UseVideoResolutionAdaptation
            Value is read-write.
        EnableParallelStitching
            Value is read-write.
        EnableStatsCollect
            Value is read-write.
        ExpectedFrameRate
            Value is read-write.
        PerceptualQualityOptimization
            Value is read-write.
        NumberOfPendingFrames
        OutputBitDepth
            Value is read-write.
        DebugMetadataSEIuseEPB
            Value is read-write.
        log2_max_minus4
            Value is read-write.
        AmbientViewingEnvironment
            Value is read-write.
        PixelAspectRatio
        ThrottleForBackground
            Value is read-write.
        Priority
            Value is read-write.
        ConvergenceDurationForAverageDataRate
            Value is read-write.
        PreserveDynamicHDRMetadata
        AuxiliaryTypeInfo
        EncodesAlpha
            Value is read-write.
        ExpectedDuration
            Value is read-write.
        MultiReferencePSpacing
            Value is read-write.
        UserDPBFramesForFaceTime
            Value is read-write.
        HEVCSyncSampleNALUnitTypes
            Value is read-only.
        Quality
            Value is read-write.
        MultiPassStorage
        EnableTimingInfoMetadata
            Value is read-write.
        EncoderUsage
            Value is read-write.
        PixelTransferProperties
        UsingMetalRegistryID
        ChromaLocationBottomField
        FieldCount
        AllowFrameReordering
            Value is read-write.
        RequiredHEVCVideoParameterSetAlphaLayerID
            Value is read-write.
        EncoderID
        AllowPixelTransfer
        VideoEncoderPixelBufferAttributes
        DeblockingFiltering
            Value is read-write.
        ContentLightLevelInfo
        ChromaQPIndexOffsetMultiPPS
            Value is read-write.
        EnableMultiReferenceP
            Value is read-write.
        MaxKeyFrameInterval
            Value is read-write.
        BaseLayerFrameRate
            Value is read-write.
        EnableUserQPForFacetime
            Value is read-write.
        MaximizePowerEfficiency
            Value is read-write.
        PrioritizeEncodingSpeedOverQuality
            Value is read-write.
        MasteringDisplayColorVolume
        QuantizationScalingMatrixPreset
            Value is read-write.
        ClientPID
        SAOMode
            Value is read-write.
        SourceFrameCount
            Value is read-write.
        CodedBuffersOverride
            Value is read-write.
        RelaxAverageBitRateTarget
            Value is read-write.
        NumberOfSlices
            Value is read-write.
Yup HandBrake does not yet. Patches are welcome. I don't have much time right now to work on HandBrake. ;)
 

winna

macrumors regular
Nov 28, 2020
123
37
DVDFab uses the same exact decoders/encoders. In HandBrake make sure to disable the interlace detection and demob filter. It's enabled by default in almost every preset. The only difference is which settings you use.
Handbrake can’t handle BD discs
 

Gnattu

macrumors 65816
Sep 18, 2020
1,107
1,672
I've done some testing (for capability) myself using ffmpeg.
HEVC Main10 is accepted by the hw encoder, but the output video is always 8bit, looks like some "silent fallback" occurred, not sure if that's ffmpeg's implementation or the hw encoder's design, if I add -require_sw 1 to use the software VideoToolBox encoder, it does output a 10-bit video.

The 444 pixel format is not handled now in ffmpeg's VideoToolBox implementation currently, I cannot test that with ffmpeg.

Test is done by using the Jellyfish Video Bitrate Test Files, particularly jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv
 

winna

macrumors regular
Nov 28, 2020
123
37
Anything else you guys want me to encode/copy/compress/ etc for speed comparison? Only my Mac Mini 6-core for now
 
Last edited:

Ritsuka

Cancelled
Sep 3, 2006
1,464
969
I've done some testing (for capability) myself using ffmpeg.
HEVC Main10 is accepted by the hw encoder, but the output video is always 8bit, looks like some "silent fallback" occurred, not sure if that's ffmpeg's implementation or the hw encoder's design, if I add -require_sw 1 to use the software VideoToolBox encoder, it does output a 10-bit video.

The 444 pixel format is not handled now in ffmpeg's VideoToolBox implementation currently, I cannot test that with ffmpeg.

Test is done by using the Jellyfish Video Bitrate Test Files, particularly jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv

The 10bit HEVC hardware encoder works. FFmpeg has got a improper check that needs to be removed:

The 10bit encoder requires the AV_PIX_FMT_P010LE pixel format.
 
  • Like
Reactions: Gnattu

Gnattu

macrumors 65816
Sep 18, 2020
1,107
1,672
The 10bit encoder requires the AV_PIX_FMT_P010LE pixel format.
Could that be incorrect handling of ffmpeg as well? Because I noticed that ffmpeg did not include 10 bit pixel formats other than P010LE in hevc_pix_fmts of videotoolbox:
Code:
static const enum AVPixelFormat hevc_pix_fmts[] = {
    AV_PIX_FMT_VIDEOTOOLBOX,
    AV_PIX_FMT_NV12,
    AV_PIX_FMT_YUV420P,
    AV_PIX_FMT_P010LE,
    AV_PIX_FMT_NONE
};
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
I have not been able to build FFmpeg as a native app.
I have ffmpeg working on my M1 MacBook Air. It took a combination of MacPorts for most of the requirements, downloading ffmpeg from git and building libx264 from git. The libx265 library worked from MacPorts but libx264 didn't.
 

lederermc

macrumors 6502a
Sep 30, 2014
897
756
Seattle
VideoToolbox is supported. I don't like VideoToolbox, because of lesser quality (it's fast as blazes, though). If you intend to use VideoToolbox and you already own an Intel Mac with T2 coprocessor, you don't need to upgrade your machine just for Handbrake purposes. There will be zero or negligible difference.

If you're encoding without VideoToolbox, Handbrake 1.4 beta allows the M1 13" MacBook Pro to perform CPU-driven HEVC encodes approximately twice as fast as the 2020 i5 13" MacBook Pro — i.e., on par with or faster than the 16" i9 MacBook Pro. Yikes!

If the rumors about M1X are true, and it will be 70-80% faster than M1, the upcoming 16" MacBook Pro refresh said to be with M1X will make it a no brainer to buy.
Screen dumps I've seen (I think in this thread) indicate the M1 VideoToolBox API has a Constant Quality knob that the T2 enabled Intels do not have.
 

Chrisjmv

macrumors 6502
Apr 9, 2016
325
72
currently I've tested Wondershare Ultimate Converter on my M1 compared to my iMac Pro 8 Core - Vega 56 and the MacBook M1 seems as fast my iMac, insane.

But I don't know if its a native App so far.

What other Video Converter would you recommend? I need to make a batch of 30 4K Videos to 1080p, does Handbrake support Batch converting and how is the quality?
 

winna

macrumors regular
Nov 28, 2020
123
37
currently I've tested Wondershare Ultimate Converter on my M1 compared to my iMac Pro 8 Core - Vega 56 and the MacBook M1 seems as fast my iMac, insane.

But I don't know if its a native App so far.

What other Video Converter would you recommend? I need to make a batch of 30 4K Videos to 1080p, does Handbrake support Batch converting and how is the quality?
Have you tried DVDFab?
 

labyrinth153

macrumors regular
Jul 16, 2017
110
74
Pittsburgh, PA
currently I've tested Wondershare Ultimate Converter on my M1 compared to my iMac Pro 8 Core - Vega 56 and the MacBook M1 seems as fast my iMac, insane.

But I don't know if its a native App so far.

What other Video Converter would you recommend? I need to make a batch of 30 4K Videos to 1080p, does Handbrake support Batch converting and how is the quality?
You can look in the activity monitor. It will say either application type apple or intel.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.