other_video_transcoding 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e35c9d638ce45ae7407b8a3d88f0a785b515683c30e55b2d325e3cc243c15431
4
- data.tar.gz: ae7a7405f0b57be44ee16dfc6b48c877730b4b6cd6933410a6ec3828bea124ef
3
+ metadata.gz: 4273472e881f7379241d7ea8f6a3576b861f92c02155ad3c786fbee68cf1a376
4
+ data.tar.gz: 38e2083ce586a71c114948efccb2877a817012ea0fdfdda1f0fce371070e80ef
5
5
  SHA512:
6
- metadata.gz: 15c29bac8aa3f7cb7ba9dcf6cf5c22e2c99f3b8ab8a709652166c885c5e2207873abdd2319c86cc5745aac977bab6911e50407356caa730976af465a88089dcb
7
- data.tar.gz: 56d94453fda02a51ac29ddbdc904192874712f4ea3457a647383c2628bd54ebe636447771940e80ee6335a74e16ccef0fd14d6785e9a2998a22acf7b12c2f027
6
+ metadata.gz: f3d2b8f89b14154307b7a89c2f0ecb6368b33f9f9011363b749dac85645fd309f2cf32a8f2b3355736a29f1e74814c47aca2ea81ff70fa2e0d0e1ea0221c3c5d
7
+ data.tar.gz: 1b593c97ca2097033d068a44a5f924b413f5ead1858592efb05db115631b106500edf887ff032629b9dde6e6d307d652ddcee11af7c020046199c72602f2300f
@@ -2,6 +2,43 @@
2
2
 
3
3
  This single document contains all of the notes created for each [release](https://github.com/donmelton/other_video_transcoding/releases).
4
4
 
5
+ ## [0.7.0](https://github.com/donmelton/other_video_transcoding/releases/tag/0.7.0)
6
+
7
+ Monday, January 4, 2021
8
+
9
+ * Modify `other-transcode` to lower default target bitrates in order to significantly reduce the size of transcoded output at the risk of a slight reduction in perceived quality. Via [ #89](https://github.com/donmelton/other_video_transcoding/issues/89).
10
+
11
+ H.264 video:
12
+
13
+ Resolution | old | new
14
+ --- | --- | ---
15
+ 1080p (Blu-ray video) | 8000 Kbps | 6000 Kbps
16
+ 720p | 4000 Kbps | 3000 Kbps
17
+ 480p (DVD video) | 2000 Kbps | 1500 Kbps
18
+
19
+ HEVC video:
20
+
21
+ Resolution | old | new
22
+ --- | --- | ---
23
+ 1080p (Blu-ray video) | 6000 Kbps | 4000 Kbps
24
+ 720p | 3000 Kbps | 2000 Kbps
25
+ 480p (DVD video) | 1500 Kbps | 1000 Kbps
26
+
27
+ Dolby Digital Plus (Enhanced AC-3) audio:
28
+
29
+ Channels | old | new
30
+ --- | --- | ---
31
+ Surround | 640 Kbps | 384 Kbps
32
+ Stereo | 256 Kbps | 192 Kbps
33
+ Mono | 128 Kbps | 96 Kbps
34
+
35
+ Note: There are no changes to default target bitrates for Dolby Digital (AC-3) and AAC audio formats.
36
+
37
+ * Change the `--eac3` option in `other-transcode` to use Dolby Digital Plus format for _all_ transcoded audio instead of just surround output.
38
+ * Deprecate the `--all-eac3` option in `other-transcode` since the `--eac3` option now has the same behavior.
39
+ * Add a `--aac-stereo` option to `other-transcode`. This uses AAC format for transcoded stereo audio output so it can be paired with `--eac3` to get that option's old behavior.
40
+ * Add a `--8-bit-vc1` option. When the color depth is currently 10-bit, this option uses an 8-bit color depth _for video inputs in VC-1 format only_.
41
+
5
42
  ## [0.6.0](https://github.com/donmelton/other_video_transcoding/releases/tag/0.6.0)
6
43
 
7
44
  Tuesday, December 22, 2020
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019-2020 Don Melton
1
+ Copyright (c) 2019-2021 Don Melton
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ask-ffmpeg-log
4
4
  #
5
- # Copyright (c) 2019-2020 Don Melton
5
+ # Copyright (c) 2019-2021 Don Melton
6
6
  #
7
7
 
8
8
  require 'abbrev'
@@ -16,8 +16,8 @@ module Transcoding
16
16
  class Command
17
17
  def about
18
18
  <<-HERE
19
- ask-ffmpeg-log 0.6.0
20
- Copyright (c) 2019-2020 Don Melton
19
+ ask-ffmpeg-log 0.7.0
20
+ Copyright (c) 2019-2021 Don Melton
21
21
  HERE
22
22
  end
23
23
 
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # other-transcode
4
4
  #
5
- # Copyright (c) 2019-2020 Don Melton
5
+ # Copyright (c) 2019-2021 Don Melton
6
6
  #
7
7
 
8
8
  require 'English'
@@ -18,8 +18,8 @@ module Transcoding
18
18
  class Command
19
19
  def about
20
20
  <<-HERE
21
- other-transcode 0.6.0
22
- Copyright (c) 2019-2020 Don Melton
21
+ other-transcode 0.7.0
22
+ Copyright (c) 2019-2021 Don Melton
23
23
  HERE
24
24
  end
25
25
 
@@ -91,8 +91,9 @@ Video options:
91
91
  --x264 use x264 software video encoder
92
92
  --x265 use x265 " " "
93
93
  --10-bit, --no-10-bit
94
- use 10-bit pixel format (default: not used for H.264,
94
+ use 10-bit color depth (default: not used for H.264,
95
95
  used for HEVC with Nvidia, Intel and x265 encoders)
96
+ --8-bit-vc1 use 8-bit color depth for VC-1 format only
96
97
  --preset NAME apply video encoder preset
97
98
  --decode vc1|all|none
98
99
  set scope of automatic hardware decoder acceleration
@@ -253,13 +254,14 @@ Audio options:
253
254
 
254
255
  def usage17
255
256
  <<-HERE
256
- --eac3 use Enhanced AC-3 format for surround audio
257
+ --eac3 use Dolby Digital Plus (E-AC-3) format for all audio
258
+ (default bitrates: 384 for surround, 192 for stereo)
257
259
  HERE
258
260
  end
259
261
 
260
262
  def usage18
261
263
  <<-HERE
262
- --all-eac3 " " " " " all audio
264
+ --aac-stereo use AAC format for stereo audio
263
265
  --limit-ac3-surround
264
266
  don't copy surround audio in AC-3 format
265
267
  when orginal bitrate is above transcoding bitrate
@@ -314,6 +316,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
314
316
  @hevc = false
315
317
  @encoder = nil
316
318
  @ten_bit = nil
319
+ @eight_bit_vc1 = false
317
320
  @preset = nil
318
321
  @decode_scope = :vc1
319
322
  @decode_method = nil
@@ -359,8 +362,8 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
359
362
  :title => nil,
360
363
  :width => :surround
361
364
  }]
362
- @surround_bitrate = 640
363
- @stereo_bitrate = 256
365
+ @surround_bitrate = nil
366
+ @stereo_bitrate = nil
364
367
  @mono_bitrate = nil
365
368
  @surround_encoder = 'ac3'
366
369
  @stereo_encoder = nil
@@ -502,6 +505,12 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
502
505
 
503
506
  opts.on '--[no-]10-bit' do |arg|
504
507
  @ten_bit = arg
508
+ @eight_bit_vc1 = false
509
+ @encoder = nil if @encoder == 'copy'
510
+ end
511
+
512
+ opts.on '--8-bit-vc1' do
513
+ @eight_bit_vc1 = true
505
514
  @encoder = nil if @encoder == 'copy'
506
515
  end
507
516
 
@@ -848,13 +857,21 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
848
857
 
849
858
  opts.on '--eac3' do
850
859
  @surround_encoder = 'eac3'
860
+ @stereo_encoder = 'eac3'
851
861
  end
852
862
 
853
863
  opts.on '--all-eac3' do
864
+ Kernel.warn '**********'
865
+ Kernel.warn 'Using deprecated option: --all-eac3'
866
+ Kernel.warn '**********'
854
867
  @surround_encoder = 'eac3'
855
868
  @stereo_encoder = 'eac3'
856
869
  end
857
870
 
871
+ opts.on '--aac-stereo' do
872
+ @stereo_encoder = nil
873
+ end
874
+
858
875
  opts.on '--limit-ac3-surround' do
859
876
  @keep_ac3_surround = false
860
877
  end
@@ -917,14 +934,31 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
917
934
  def configure(path)
918
935
  @audio_selections.uniq!
919
936
  @subtitle_selections.uniq!
920
- min_bitrate = @surround_encoder == 'eac3' ? 192 : 256
921
- @surround_bitrate = [[@surround_bitrate, min_bitrate].max, (@surround_encoder == 'ac3' ? 640 : 768)].min
922
- @stereo_bitrate = [[@stereo_bitrate, min_bitrate / 2].max, (@stereo_encoder == 'eac3' ? 768 : 320)].min
937
+
938
+ if @surround_encoder == 'eac3'
939
+ @surround_bitrate ||= 384
940
+ @surround_bitrate = [[@surround_bitrate, 192].max, 768].min
941
+ else
942
+ @surround_bitrate ||= 640
943
+ @surround_bitrate = [[@surround_bitrate, 256].max, 640].min
944
+ end
945
+
946
+ if @stereo_encoder == 'eac3'
947
+ @stereo_bitrate ||= 192
948
+ @stereo_bitrate = [[@stereo_bitrate, 96].max, 768].min
949
+ else
950
+ @stereo_bitrate ||= 256
951
+ @stereo_bitrate = [[@stereo_bitrate, 128].max, 320].min
952
+ end
923
953
 
924
954
  if @mono_bitrate.nil?
925
955
  @mono_bitrate = @stereo_bitrate / 2
926
956
  else
927
- @mono_bitrate = [[@mono_bitrate, min_bitrate / 4].max, (@stereo_encoder == 'eac3' ? 768 : 256)].min
957
+ if @stereo_encoder == 'eac3'
958
+ @mono_bitrate = [[@mono_bitrate, 48].max, 768].min
959
+ else
960
+ @mono_bitrate = [[@mono_bitrate, 64].max, 256].min
961
+ end
928
962
  end
929
963
 
930
964
  [
@@ -966,10 +1000,10 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
966
1000
  end
967
1001
 
968
1002
  @ten_bit = (@hevc and @encoder =~ /(nvenc|qsv|x265)$/ ? true : false) if @ten_bit.nil?
969
- @target_2160p ||= @hevc ? 12000 : 16000
970
- @target_1080p ||= @hevc ? 6000 : 8000
971
- @target_720p ||= @hevc ? 3000 : 4000
972
- @target_480p ||= @hevc ? 1500 : 2000
1003
+ @target_2160p ||= @hevc ? 8000 : 12000
1004
+ @target_1080p ||= @hevc ? 4000 : 6000
1005
+ @target_720p ||= @hevc ? 2000 : 3000
1006
+ @target_480p ||= @hevc ? 1000 : 1500
973
1007
  @decode_method ||= @encoder =~ /nvenc$/ ? 'cuda' : 'auto'
974
1008
 
975
1009
  if @stereo_encoder.nil?
@@ -1721,7 +1755,8 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1721
1755
  ]
1722
1756
  end
1723
1757
 
1724
- hdr = ((video.fetch('pix_fmt', 'yuv420p') == 'yuv420p10le') and @ten_bit)
1758
+ ten_bit = (@ten_bit ? (@eight_bit_vc1 ? (video['codec_name'] != 'vc1') : true) : false)
1759
+ hdr = ((video.fetch('pix_fmt', 'yuv420p') == 'yuv420p10le') and ten_bit)
1725
1760
 
1726
1761
  if hdr
1727
1762
  color_primaries = 'bt2020'
@@ -1816,7 +1851,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1816
1851
 
1817
1852
  Kernel.warn text
1818
1853
  encode_options += ['-c:v', @encoder]
1819
- encode_options += ['-pix_fmt:v', (@encoder =~ /(nvenc|qsv)$/ ? 'p010le' : 'yuv420p10le')] if @ten_bit
1854
+ encode_options += ['-pix_fmt:v', (@encoder =~ /(nvenc|qsv)$/ ? 'p010le' : 'yuv420p10le')] if ten_bit
1820
1855
  encode_options += ['-b:v', "#{bitrate}k"] unless @encoder == 'copy'
1821
1856
  encode_options += ['-maxrate:v', "#{maxrate}k"] if maxrate > 0
1822
1857
  encode_options += ['-bufsize:v', "#{bufsize}k"] if bufsize > 0
@@ -1889,7 +1924,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1889
1924
  encode_options += ['-x265-params:v', @x265_params] unless @x265_params.nil?
1890
1925
  end
1891
1926
 
1892
- unless @ten_bit
1927
+ unless ten_bit
1893
1928
  encode_options += ['-profile:v', 'high'] if @encoder =~ /^(h264_nvenc|h264_amf|libx264)$/
1894
1929
  end
1895
1930
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'other_video_transcoding'
3
- s.version = '0.6.0'
3
+ s.version = '0.7.0'
4
4
  s.required_ruby_version = '>= 2.0'
5
5
  s.summary = 'Other tools to transcode videos.'
6
6
  s.description = <<-HERE
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: other_video_transcoding
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Melton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-23 00:00:00.000000000 Z
11
+ date: 2021-01-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: " Other Video Transcoding is a package of tools to transcode videos.\n"
14
14
  email: don@blivet.com
@@ -33,6 +33,7 @@ files:
33
33
  - other_video_transcoding-0.3.2.gem
34
34
  - other_video_transcoding-0.4.0.gem
35
35
  - other_video_transcoding-0.5.0.gem
36
+ - other_video_transcoding-0.6.0.gem
36
37
  - other_video_transcoding.gemspec
37
38
  homepage: https://github.com/donmelton/other_video_transcoding
38
39
  licenses: