video_transcoding 0.17.2 → 0.17.3

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
  SHA1:
3
- metadata.gz: 3724536547ba9854e753cbf28801016a3a9925f3
4
- data.tar.gz: 618cc836292bae3f49052e5c126f266aa8a42324
3
+ metadata.gz: 241a0deb1c290faf3bc3369d8ffe5553d50fe625
4
+ data.tar.gz: 6f86fc711f6c6987a43e49e809de4c40bcfc28f2
5
5
  SHA512:
6
- metadata.gz: aee6b5624993332b40a271eb82f47e2d8f678d8dd04a820a801ee42add82dbf695cc6fa76752ad2417339069d4d6aaf824923dfb6fbe5e608e9fe2037e45f616
7
- data.tar.gz: 0e6ae2ff613b73c4c596b1dddcee1f3faadec8b3629eda4889b385973c5a6548cdcd750230c7ad62a61a19397111dc89300ecb8c02c5f5cf059f91af16154aaf
6
+ metadata.gz: 57641bd39a63881135fb6107dd1db91e2376b81c785a2a107b62ab22cd7b5226719c3681e8d6a3f4e9b541955ace2f00c2c66631af455941f4c892571eb4e179
7
+ data.tar.gz: 3413a920260f3526f5cfcf3d4c863bf8d010d293a6815cad2bc3411ffe5e52e19d92af77f8321e9efeb8fc90fefde8cbd6d19d4a4f1c47b9caed1619fa4a8c79
data/README.md CHANGED
@@ -329,6 +329,8 @@ Which prints out something like this:
329
329
 
330
330
  Just copy and paste the sample commands to preview or transcode.
331
331
 
332
+ Please note that path names within the sample commands are not escaped properly when using `cmd.exe` or PowerShell on Windows. If you have [Git for Windows](https://git-for-windows.github.io/) or another Unix-like environment installed, you can use the [Bash shell](https://en.wikipedia.org/wiki/Bash_(Unix_shell)) (usually named `bash.exe`) to work around this issue.
333
+
332
334
  If HandBrake and FFmpeg disagree about the cropping values, then `detect-crop` prints out something like this:
333
335
 
334
336
  Results differ...
@@ -660,6 +662,19 @@ For a few problematic videos, I have to apply options like `--force-rate 23.976
660
662
 
661
663
  ## History
662
664
 
665
+ Sunday, May 14, 2017
666
+
667
+ ### [0.17.3](https://github.com/donmelton/video_transcoding/releases/tag/0.17.3)
668
+
669
+ * `HandBrakeCLI` versions 1.0 and later changed the default frame rate mode from "constant" to "peak-limited" when a rate is specified. This new behavior in `HandBrakeCLI` requires two significant changes in `transcode-video`:
670
+ * Fix a bug where the `--force-rate` option failed to force a constant frame rate. This bug made it behave essentially the same at the `--limit-rate` option.
671
+ * Fix a bug where a constant frame rate was not forced for inputs containing [MPEG-2 video](https://en.wikipedia.org/wiki/MPEG-2). This bug affected the transcoding of all DVDs but very few Blu-ray Discs. The good news is that this bug probably didn't cause visual problems since the new default peak-limited implementation in `HandBrakeCLI` versions 1.0 and later worked like a constant frame rate most of the time.
672
+ * Modify `convert-video` to use binary file mode when reading and writing console and log output from `ffmpeg`. This eliminates redundant information and "console spew" on Windows by suppressing the EOL <-> CRLF conversion. Thanks, [@samhutchins](https://github.com/samhutchins)! Via [ #147](https://github.com/donmelton/video_transcoding/pull/147).
673
+ * Also modify `transcode-video` and `convert-video` to use binary file mode when processing console I/O from `mkvpropedit` and `mp4track` to eliminate that same "console spew" on Windows.
674
+ * Modify `detect-crop` to escape preview commands for `cmd.exe` and PowerShell on Windows in a manner that's still compatible with Bourne and Z shells. Also mention in the "Using `detect-crop`" section of the "README" document that path names within the sample commands are not escaped properly when using `cmd.exe` or PowerShell on Windows and that `bash.exe` can be used as a workaround. Via [ #146](https://github.com/donmelton/video_transcoding/issues/146).
675
+ * Modify `transcode-video` to accept `x264_10bit`, `x265_10bit`, `x265_12bit` and `x265_16bit` as supported encoders while also adjusting the encoder profile for these variants. Via [ #143](https://github.com/donmelton/video_transcoding/issues/143).
676
+ * Modify `transcode-video` to no longer set the x264 encoder level if a frame rate has been requested higher than `30` FPS. Via [ #141](https://github.com/donmelton/video_transcoding/issues/141).
677
+
663
678
  ### [0.17.2](https://github.com/donmelton/video_transcoding/releases/tag/0.17.2)
664
679
 
665
680
  Monday, April 3, 2017
data/bin/convert-video CHANGED
@@ -244,7 +244,7 @@ HERE
244
244
  '--track-index', track.to_s,
245
245
  '--enabled', enabled,
246
246
  output,
247
- ], :err=>[:child, :out]) do |io|
247
+ ], 'rb', :err=>[:child, :out]) do |io|
248
248
  io.each do |line|
249
249
  Console.debug line
250
250
  end
@@ -385,7 +385,7 @@ HERE
385
385
  MKVpropedit.command_name,
386
386
  *mkvpropedit_options,
387
387
  output,
388
- ], :err=>[:child, :out]) do |io|
388
+ ], 'rb', :err=>[:child, :out]) do |io|
389
389
  io.each do |line|
390
390
  Console.debug line
391
391
  end
@@ -410,7 +410,7 @@ HERE
410
410
  Console.info 'Converting with ffmpeg...'
411
411
 
412
412
  begin
413
- IO.popen(ffmpeg_command, :err=>[:child, :out]) do |io|
413
+ IO.popen(ffmpeg_command, 'rb', :err=>[:child, :out]) do |io|
414
414
  Signal.trap 'INT' do
415
415
  Process.kill 'INT', io.pid
416
416
  end
data/bin/detect-crop CHANGED
@@ -104,7 +104,7 @@ HERE
104
104
  puts
105
105
 
106
106
  if @player == :mpv
107
- puts "mpv --no-audio --vf 'lavfi=[drawbox=#{Crop.drawbox_string(crop, width, height)}:invert:1]' #{shell_path}"
107
+ puts "mpv --no-audio --vf \"lavfi=[drawbox=#{Crop.drawbox_string(crop, width, height)}:invert:1]\" #{shell_path}"
108
108
  puts "mpv --no-audio --vf crop=#{Crop.player_string(crop, width, height)} #{shell_path}"
109
109
  else
110
110
  str = Crop.player_string(crop, width, height)
data/bin/transcode-video CHANGED
@@ -451,6 +451,7 @@ HERE
451
451
  end
452
452
 
453
453
  force_handbrake_option 'rate', arg
454
+ force_handbrake_option 'cfr', nil
454
455
  @handbrake_options.delete 'vfr'
455
456
  @handbrake_options.delete 'pfr'
456
457
  end
@@ -908,11 +909,16 @@ HERE
908
909
  end
909
910
 
910
911
  handbrake_options['rate'] = rate
911
- handbrake_options['pfr'] = nil if rate == '30'
912
+
913
+ if rate == '30'
914
+ handbrake_options['pfr'] = nil
915
+ else
916
+ handbrake_options['cfr'] = nil
917
+ end
912
918
  end
913
919
 
914
920
  encoder = @handbrake_options.fetch('encoder', 'x264')
915
- return unless encoder == 'x264' or encoder == 'x265'
921
+ return unless encoder =~ /^x264(?:_10bit)?$/ or encoder =~ /^x265(?:_1[026]bit)?$/
916
922
  handbrake_options['encoder-preset'] = 'medium'
917
923
 
918
924
  if width > 1920 or height > 1080
@@ -932,9 +938,16 @@ HERE
932
938
  case encoder
933
939
  when 'x264'
934
940
  handbrake_options['encoder-profile'] = 'high'
935
- handbrake_options['encoder-level'] = encoder_level
941
+
942
+ if @handbrake_options.fetch('rate', '30').to_f <= 30.0
943
+ handbrake_options['encoder-level'] = encoder_level
944
+ end
945
+ when 'x264_10bit'
946
+ handbrake_options['encoder-profile'] = 'high10'
936
947
  when 'x265'
937
948
  handbrake_options['encoder-profile'] = 'main'
949
+ when 'x265_10bit', 'x265_12bit', 'x265_16bit'
950
+ handbrake_options['encoder-profile'] = 'main10'
938
951
  end
939
952
 
940
953
  if @vbr_quality.nil?
@@ -972,7 +985,7 @@ HERE
972
985
 
973
986
  if (@quick or @veryquick) and
974
987
  @handbrake_options.fetch('encoder-preset', 'medium') == 'medium' and
975
- encoder == 'x264'
988
+ encoder =~ /^x264(?:_10bit)?$/
976
989
  encoder_options['partitions'] = 'none'
977
990
  encoder_options['ref'] = '1'
978
991
  encoder_options['bframes'] = '1' if @veryquick
@@ -1306,7 +1319,7 @@ HERE
1306
1319
  '--edit', 'track:s1',
1307
1320
  '--set', 'flag-forced=1',
1308
1321
  output,
1309
- ], :err=>[:child, :out]) do |io|
1322
+ ], 'rb', :err=>[:child, :out]) do |io|
1310
1323
  io.each do |line|
1311
1324
  Console.debug line
1312
1325
  end
@@ -1333,7 +1346,7 @@ HERE
1333
1346
  '--edit', "track:a#{track}",
1334
1347
  '--set', "name=#{original_name}",
1335
1348
  output,
1336
- ], :err=>[:child, :out]) do |io|
1349
+ ], 'rb', :err=>[:child, :out]) do |io|
1337
1350
  io.each do |line|
1338
1351
  Console.debug line
1339
1352
  end
@@ -1353,7 +1366,7 @@ HERE
1353
1366
  '--track-index', track.to_s,
1354
1367
  "--#{property}", original_name,
1355
1368
  output,
1356
- ], :err=>[:child, :out]) do |io|
1369
+ ], 'rb', :err=>[:child, :out]) do |io|
1357
1370
  io.each do |line|
1358
1371
  Console.debug line
1359
1372
  end
@@ -5,5 +5,5 @@
5
5
  #
6
6
 
7
7
  module VideoTranscoding
8
- VERSION = '0.17.2'
8
+ VERSION = '0.17.3'
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.17.2
4
+ version: 0.17.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Melton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-04 00:00:00.000000000 Z
11
+ date: 2017-05-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |2
14
14
  Video Transcoding is a package of tools to transcode, inspect