video_transcoding 0.21.1 → 0.21.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d5b8d915baa00f225ed048693db2d56211f11be8b8ed7fde1a67a71ee90abb7
4
- data.tar.gz: c5cb49798fcea529d7ec5a0903f088e726a54b97bec98f2a48bc918777279136
3
+ metadata.gz: 89811ccde1116e1e2eb8005841225587b2e9ce21dd2407d8164b081ed4da7694
4
+ data.tar.gz: 652fde3679a6176b5cb587c76a44a095bda1721de984d5f1adaff9f5f6c5685f
5
5
  SHA512:
6
- metadata.gz: 0771776f309d423d0fc2e324521c8484adf18bd1b3b348df23c856cc9d1439ee2135c53122ddb4eeb6f58aa8f6160b036a8bc3535e4ae217471d0c7db18d7862
7
- data.tar.gz: a7b1508028c17f07e1ac9da18c4a2ddb06d5bd5d56d08965739b66ce64fb3f22bb5a4ab17152830715934ff5e58cb40ace75d60c2d3bce991813b69702a0be99
6
+ metadata.gz: 33621c9e885597c9dd0dcfe6662e17fd6e5700a3c5069c3700e4a67b5f473a0d76fec00308fe30790126e5789c98796d8b213174d6ea2af63a3a1be163c0197d
7
+ data.tar.gz: 2033fb19aeaf1f169dbd841f4a80497b23bdaaac751d8e54b75fdb2082ad87e3d7b4112ab66ce3e2ebc7a8368b4e2abdd77e4c1b0b6483d9e4a060983b338bbc
data/README.md CHANGED
@@ -689,6 +689,19 @@ For a few problematic videos, I have to apply options like `--force-rate 23.976
689
689
 
690
690
  ## History
691
691
 
692
+ ### [0.21.2](https://github.com/donmelton/video_transcoding/releases/tag/0.21.2)
693
+
694
+ Sunday, December 4, 2018
695
+
696
+ * Modify `transcode-video` to pass the target video bitrate to hardware-based encoders available in HandBrake for Windows and Linux as well as HandBrake nightly builds for macOS:
697
+ * Check the output of `HandBrakeCLI --help` from one of those builds to find out if your platform has any of these video encoders available.
698
+ * The names of these encoders all end with "`_h264`" (for H.264) or "`_h265`" (for HEVC).
699
+ * On macOS, adding `--handbrake-option encoder=vt_h264` is all that's needed to enable hardware-based H.264 transcoding. Use `vt_h264` for HEVC.
700
+ * On Windows and Linux, use `qsv_h264` or `qsv_h265`. Other encoders might be available as well in nightly builds.
701
+ * WARNING: If you request an encoder that is _not_ available, `HandBrakeCLI` may fail or it may just fallback to a software-based encoder. Check your console output while transcoding to be certain.
702
+ * With the encoders I've tested so far, `--preset` and `--encoder-option` have no effect no matter what you pass.
703
+ * These hardware-based encoders are far faster than the software-based `x264` and `x265` encoders while still delivering _reasonable_ quality. Of course, your mileage (and perception) may vary.
704
+
692
705
  ### [0.21.1](https://github.com/donmelton/video_transcoding/releases/tag/0.21.1)
693
706
 
694
707
  Sunday, December 2, 2018
data/bin/transcode-video CHANGED
@@ -899,20 +899,6 @@ HERE
899
899
  end
900
900
  end
901
901
 
902
- encoder = @handbrake_options.fetch('encoder', 'x264')
903
- return unless encoder =~ /^x264(?:_10bit)?$/ or encoder =~ /^x265(?:_1[02]bit)?$/
904
-
905
- case encoder
906
- when 'x264'
907
- handbrake_options['encoder-profile'] = 'high'
908
- when 'x264_10bit'
909
- handbrake_options['encoder-profile'] = 'high10'
910
- when 'x265'
911
- handbrake_options['encoder-profile'] = 'main'
912
- when 'x265_10bit', 'x265_12bit'
913
- handbrake_options['encoder-profile'] = 'main10'
914
- end
915
-
916
902
  if width > 1920 or height > 1080
917
903
  encoder_level = '5.1'
918
904
  bitrate = @target_bitrate_2160p
@@ -927,10 +913,6 @@ HERE
927
913
  bitrate = @target_bitrate_480p
928
914
  end
929
915
 
930
- if encoder =~ /^x264(?:_10bit)?$/ and @handbrake_options.fetch('rate', '30').to_f <= 30.0
931
- handbrake_options['encoder-level'] = encoder_level
932
- end
933
-
934
916
  if @target_bitrate.nil?
935
917
  unless media.info[:directory]
936
918
  media_bitrate = ((((media.info[:size] * 8) / media.info[:duration]) / 1000) / 1000) * 1000
@@ -949,6 +931,29 @@ HERE
949
931
  bitrate = @target_bitrate
950
932
  end
951
933
 
934
+ encoder = @handbrake_options.fetch('encoder', 'x264')
935
+
936
+ if encoder =~ /_h26[45]$/
937
+ handbrake_options['vb'] = bitrate.to_s
938
+ end
939
+
940
+ return unless encoder =~ /^x264(?:_10bit)?$/ or encoder =~ /^x265(?:_1[02]bit)?$/
941
+
942
+ case encoder
943
+ when 'x264'
944
+ handbrake_options['encoder-profile'] = 'high'
945
+ when 'x264_10bit'
946
+ handbrake_options['encoder-profile'] = 'high10'
947
+ when 'x265'
948
+ handbrake_options['encoder-profile'] = 'main'
949
+ when 'x265_10bit', 'x265_12bit'
950
+ handbrake_options['encoder-profile'] = 'main10'
951
+ end
952
+
953
+ if encoder =~ /^x264(?:_10bit)?$/ and @handbrake_options.fetch('rate', '30').to_f <= 30.0
954
+ handbrake_options['encoder-level'] = encoder_level
955
+ end
956
+
952
957
  if @use_abr
953
958
  handbrake_options['vb'] = bitrate.to_s
954
959
  encoder_options['vbv-maxrate'] = ((bitrate * 1.5).to_i).to_s
@@ -5,5 +5,5 @@
5
5
  #
6
6
 
7
7
  module VideoTranscoding
8
- VERSION = '0.21.1'
8
+ VERSION = '0.21.2'
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: video_transcoding
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.1
4
+ version: 0.21.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Melton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-02 00:00:00.000000000 Z
11
+ date: 2018-12-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |2
14
14
  Video Transcoding is a package of tools to transcode, inspect