Translating Handbrake options to a FFMPEG command
Asked Answered
T

0

6

I want to convert a bunch of videos from x264 to x265, but I need to do so with ffmpeg in terminal because it's a remote server. These are my Handbrake options (listed items are ticked):

Summary tab

  • Web optimized
  • Align A/V Start

Dimensions tab unchanged

Filters tab

  • Sharpen - LapSharp, preset: Medium

Video tab

  • Video codec - H.265 (x265)

  • Framerate (FPS) - 30 - Peak Framerate

  • Quality - Constant Quality - 28

  • Encoder preset - Medium

  • Encoder tune - None

  • Encoder profile - Auto

Audio tab

  • Audio track - AAC, bitrate: 128

Subtitles tab - No subtitles (remove if exists)

This is the ffmpeg command that I've managed to compile so far:

ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a aac -b:a 128k -max_muxing_queue_size 400 -movflags +faststart output.mp4

I have the following two questions:

  1. Does the ffmpeg command provided list all the options except the peak framerate, sharpening filter and removing subtitle ones? How do I incorporate these three?
  2. Slightly unrelated, but does having -max_muxing_queue_size 400 negatively affect file size or video quality? I've only included this because I'd ran into encoding errors in the past.

Thank you.

My Handbrake log with the above options, if it helps:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.10.100
  Duration: 00:02:20.52, start: 0.000000, bitrate: 1487 kb/s
    Stream #0:0(und): Video: h264 (High) [avc1 / 0x31637661]
      yuv420p, tv, bt709/bt709/bt709
      1280x720 [PAR 1:1 DAR 16:9], 1288 kb/s, PAR 1:1 DAR 16:9
      29.97 fps, 30k tbn (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) [mp4a / 0x6134706D]
      44100 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[04:26:49] scan: decoding previews for title 1
[04:26:49] scan: audio 0x1: aac, rate=44100Hz, bitrate=192025 English (AAC) (2.0 ch)
[04:26:50] scan: 10 previews, 1280x720, 29.970 fps, autocrop = 0/0/0/0, aspect 16:9, PAR 1:1
[04:26:50] scan: supported video decoders: avcodec qsv
[04:26:50] libhb: scan thread found 1 valid title(s)
[04:26:50] starting job
[04:26:50] decomb filter thread started for segment 0
[04:26:50] decomb filter thread started for segment 1
[04:26:50] decomb filter thread started for segment 3
[04:26:50] decomb check thread started for segment 0
[04:26:50] decomb check thread started for segment 1
[04:26:50] yadif thread started for segment 0
[04:26:50] decomb check thread started for segment 3
[04:26:50] mask filter thread started for segment 0
[04:26:50] work: track 1, dithering not supported by codec
[04:26:50] mask filter thread started for segment 1
[04:26:50] work: only 1 chapter, disabling chapter markers
[04:26:50] job configuration:
[04:26:50]  * source
[04:26:50]    + E:\input.mp4
[04:26:50]    + title 1, chapter(s) 1 to 1
[04:26:50]    + container: mov,mp4,m4a,3gp,3g2,mj2
[04:26:50] mask filter thread started for segment 3
[04:26:50]    + data rate: 1487 kbps
[04:26:50]  * destination
[04:26:50]    + C:\Users\Hp\Desktop\output.mp4
[04:26:50]    + container: MPEG-4 (libavformat)
[04:26:50]      + optimized for HTTP streaming (fast start)
[04:26:50]      + align initial A/V stream timestamps
[04:26:50]  * video track
[04:26:50]    + decoder: h264
[04:26:50]      + bitrate 1288 kbps
[04:26:50]    + filters
[04:26:50] mask filter thread started for segment 2
[04:26:50]      + Comb Detect (mode=3:spatial-metric=2:motion-thresh=1:spatial-thresh=1:filter-mode=2:block-thresh=40:block-width=16:block-height=16)
[04:26:50]      + Decomb (mode=39)
[04:26:50]      + Framerate Shaper (mode=2:rate=27000000/900000)
[04:26:50]        + frame rate: 29.970 fps -> peak rate limited to 30.000 fps
[04:26:50] mask erode thread started for segment 1
[04:26:50]      + Crop and Scale (width=1280:height=720:crop-top=0:crop-bottom=0:crop-left=0:crop-right=0)
[04:26:50]        + source: 1280 * 720, crop (0/0/0/0): 1280 * 720, scale: 1280 * 720
[04:26:50]      + Sharpen (lapsharp) (y-strength=0.2:y-kernel=isolap:cb-strength=0.2:cb-kernel=isolap)
[04:26:50]    + Output geometry
[04:26:50]      + storage dimensions: 1280 x 720
[04:26:50]      + pixel aspect ratio: 1 : 1
[04:26:50]      + display dimensions: 1280 x 720
[04:26:50]    + encoder: H.265 (libx265)
[04:26:50]      + preset:  medium
[04:26:50]      + profile: auto
[04:26:50]      + quality: 28.00 (RF)
[04:26:50]  * audio track 1
[04:26:50] mask erode thread started for segment 2
[04:26:50]    + decoder: English (AAC) (2.0 ch) (track 1, id 0x1)
[04:26:50]      + bitrate: 192 kbps, samplerate: 44100 Hz
[04:26:50]    + mixdown: Stereo
[04:26:50]    + encoder: AAC (libavcodec)
[04:26:50]      + bitrate: 128 kbps, samplerate: 48000 Hz
[04:26:50] mask erode thread started for segment 3
[04:26:50] mask dilate thread started for segment 0
[04:26:50] mask dilate thread started for segment 1
[04:26:50] mask dilate thread started for segment 2
[04:26:50] decomb check thread started for segment 2
[04:26:50] yadif thread started for segment 1
[04:26:50] yadif thread started for segment 2
[04:26:50] yadif thread started for segment 3
[04:26:50] MTFrame thread started for segment 1
[04:26:50] MTFrame thread started for segment 2
[04:26:50] MTFrame thread started for segment 3
[04:26:50] mask dilate thread started for segment 3
[04:26:50] sync: expecting 4211 video frames
[04:26:50] mask erode thread started for segment 0
[04:26:50] decomb filter thread started for segment 2
[04:26:50] MTFrame thread started for segment 0
x265 [info]: HEVC encoder version 2.6
x265 [info]: build info [Windows][GCC 7.2.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [info]: Main profile, Level-3.1 (Main tier)
x265 [info]: Thread pool created using 4 threads
x265 [info]: Slices                              : 1
x265 [info]: frame threads / pool features       : 2 / wpp(12 rows)
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut / bias: 30 / 300 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
x265 [info]: References / ref-limit  cu / depth  : 3 / on / on
x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress            : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=2.00 rskip signhide tmvp strong-intra-smoothing
x265 [info]: tools: lslices=4 deblock sao
[04:26:50] sync: first pts video is 0
[04:26:50] sync: "Chapter 1" (1) at frame 1 time 0
[04:26:50] sync: first pts audio 0x1 is 0
[04:40:02] reader: done. 1 scr changes
[04:40:13] work: average encoding speed for job is 5.245789 fps
[04:40:13] comb detect: heavy 3 | light 10 | uncombed 4198 | total 4211
[04:40:13] decomb: deinterlaced 3 | blended 10 | unfiltered 4198 | total 4211
[04:40:13] vfr: 4211 frames output, 0 dropped and 0 duped for CFR/PFR
[04:40:13] vfr: lost time: 0 (0 frames)
[04:40:13] vfr: gained time: 0 (0 frames) (0 not accounted for)
[04:40:13] aac-decoder done: 6052 frames, 0 decoder errors
[04:40:13] h264-decoder done: 4211 frames, 0 decoder errors
[04:40:13] sync: got 4211 frames, 4211 expected
[04:40:13] sync: framerate min 18.394 fps, max 29.970 fps, avg 29.966 fps
x265 [info]: frame I:     18, Avg QP:24.13  kb/s: 2900.85
x265 [info]: frame P:   1079, Avg QP:26.64  kb/s: 1040.14
x265 [info]: frame B:   3114, Avg QP:33.15  kb/s: 235.18
x265 [info]: Weighted P-Frames: Y:0.4% UV:0.4%
x265 [info]: consecutive B-frames: 4.0% 1.4% 20.1% 55.7% 18.8%
encoded 4211 frames in 802.93s (5.24 fps), 452.83 kb/s, Avg QP:31.44
[04:40:13] mux: track 0, 4211 frames, 7970061 bytes, 453.68 kbps, fifo 8192
[04:40:13] mux: track 1, 6588 frames, 2254132 bytes, 128.31 kbps, fifo 8192
[04:40:13] libhb: work result = 0

# Encode Completed ...
Thearchy answered 8/5, 2020 at 23:22 Comment(4)
hey dude, did you get something working? i'm also looking at getting ffmpeg to generate a compatible mp4 which will work on apple devices 720pEulau
i need this preset settings for ffmpeg Apple 720p30 Surround MP4 H.264 AAC stereo; Dolby Digital (AC-3) MediumEulau
@DeanVanGreunen sorry about the late reply, but i actually ended up using handbrake cliThearchy
I'm using a node wrapper for ffmpeg, so handbrake is out of question, but thank you, i've already gotten this working.Eulau

© 2022 - 2024 — McMap. All rights reserved.