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.I've seen reports that the intel hardware encoder (Quick Sync) produces better results than Apple's.
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.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.
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.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.
is there any video converter there that supports apple silicon? I want to convert some 4k videos into 1080p.
thanks.
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.
DVDFab is a faster option, check my benchmarksI have used Handbrake and its pretty fast and efficient. Handbrake 1.4 beta version (Universal Build) is the best option.
DVDFab is a faster option, check my benchmarks
It does H265 yes, even toolbox. Great application.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.
Yup HandBrake does not yet. Patches are welcome. I don't have much time right now to work on HandBrake.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.
Handbrake can’t handle BD discsDVDFab 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.
-require_sw 1
to use the software VideoToolBox encoder, it does output a 10-bit video.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
What version of HandBrake? Same encoding settings yield 5-8 fps for my MacBook Air M1.1080p 30 Big Buck Bunny. H265 hardware encoder. QF 80. Average of 169fps.
Could that be incorrect handling of ffmpeg as well? Because I noticed that ffmpeg did not include 10 bit pixel formats other thanThe 10bit encoder requires the AV_PIX_FMT_P010LE pixel format.
P010LE
in hevc_pix_fmts
of videotoolbox: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
};
What do you mean can't handle? It seems to do fine on my M1 MBA.Handbrake can’t handle BD discs
Copy protectionWhat do you mean can't handle? It seems to do fine on my M1 MBA.
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.I have not been able to build FFmpeg as a native app.
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.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.
Have you tried DVDFab?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.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?