multimedia_paradise 1.1.344 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +99 -77
- data/bin/audio_player +1 -1
- data/bin/extract_images_from_this_video_file +1 -1
- data/bin/loop_this_video +1 -1
- data/bin/merge_avi_files +1 -1
- data/bin/merge_mp3 +1 -1
- data/bin/mp3_to_opus +1 -1
- data/bin/mpg_to_mp4 +1 -1
- data/bin/multimedia_paradise +1 -1
- data/bin/to_aiff +2 -5
- data/bin/to_flac +7 -0
- data/bin/to_mp3 +8 -0
- data/bin/to_mp4 +1 -1
- data/bin/to_ogg +7 -0
- data/bin/verbose_analyse_this_mp3_file_for_id3_tags +1 -1
- data/bin/video_codec +1 -1
- data/bin/video_thumbnail +1 -1
- data/bin/video_to_images +1 -1
- data/doc/README.gen +88 -51
- data/doc/{CHANGELOG.md → changelog/changelog.md} +8 -6
- data/doc/{LINKS.md → links/links.md} +2 -2
- data/doc/{MOTIVATION_FOR_THIS_PROJECT.md → motivation_for_the_multimedia_paradise_project/motivation_for_the_multimedia_paradise_project.md} +5 -5
- data/doc/todo/todo_for_the_multimedia_paradise_project.md +79 -93
- data/lib/multimedia_paradise/actions/actions.rb +224 -0
- data/lib/multimedia_paradise/audio/audio_player/audio_player.rb +61 -64
- data/lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb +17 -8
- data/lib/multimedia_paradise/audio/base.rb +0 -5
- data/lib/multimedia_paradise/audio/compress.rb +8 -5
- data/lib/multimedia_paradise/audio/create_m3u_playlist.rb +7 -11
- data/lib/multimedia_paradise/audio/extract_audio/constants.rb +0 -37
- data/lib/multimedia_paradise/audio/extract_audio/extract_audio.rb +90 -68
- data/lib/multimedia_paradise/audio/file_duration/file_duration.rb +134 -80
- data/lib/multimedia_paradise/audio/genres/boogie.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/concerts.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/constants.rb +1 -1
- data/lib/multimedia_paradise/audio/genres/eurodance.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/genre.rb +36 -33
- data/lib/multimedia_paradise/audio/genres/hip_hop.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/italian_songs.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/the_1980s.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/trance.rb +4 -7
- data/lib/multimedia_paradise/audio/lyrics_fetcher.rb +27 -22
- data/lib/multimedia_paradise/audio/merge_audio_files.rb +18 -11
- data/lib/multimedia_paradise/audio/modify_year_of_audio_file.rb +23 -11
- data/lib/multimedia_paradise/audio/n_audio_songs.rb +3 -2
- data/lib/multimedia_paradise/audio/play_all_audio_files.rb +41 -16
- data/lib/multimedia_paradise/audio/playlist/playlist.rb +163 -123
- data/lib/multimedia_paradise/audio/remove_audio.rb +11 -6
- data/lib/multimedia_paradise/audio/remove_last_second.rb +2 -3
- data/lib/multimedia_paradise/audio/report_missing_id.rb +22 -12
- data/lib/multimedia_paradise/audio/streamripper/streamripper_wrapper.rb +7 -5
- data/lib/multimedia_paradise/audio/to_mp3.rb +7 -5
- data/lib/multimedia_paradise/audio/to_ogg.rb +3 -1
- data/lib/multimedia_paradise/audio/wav_to_mp3.rb +5 -5
- data/lib/multimedia_paradise/base/base.rb +854 -15
- data/lib/multimedia_paradise/base/colours.rb +28 -31
- data/lib/multimedia_paradise/base/{commandline_arguments.rb → commandline_arguments_module/commandline_arguments_module.rb} +12 -9
- data/lib/multimedia_paradise/colours/colours.rb +4 -1
- data/lib/multimedia_paradise/commandline/{menu.rb → commandline.rb} +19 -16
- data/lib/multimedia_paradise/constants/constants.rb +504 -14
- data/lib/multimedia_paradise/constants/web_constants.rb +2 -4
- data/lib/multimedia_paradise/gui/gui_base.rb +2 -2
- data/lib/multimedia_paradise/gui/libui/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/simple_play_widget/simple_play_widget.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/video_player/video_player.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/youtube_channels/youtube_channels.rb +1 -1
- data/lib/multimedia_paradise/gui/shared_code/multimedia_converter/multimedia_converter_module.rb +0 -478
- data/lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb +94 -41
- data/lib/multimedia_paradise/gui/shared_code/simple_play_widget/simple_play_widget_module.rb +0 -257
- data/lib/multimedia_paradise/gui/universal_widgets/change_metadata_widget/change_metadata_widget.rb +2 -2
- data/lib/multimedia_paradise/gui/universal_widgets/information_about_a_mp3_file/information_about_a_mp3_file.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/multimedia_converter/multimedia_converter.rb +589 -0
- data/lib/multimedia_paradise/gui/universal_widgets/playlist/playlist.rb +197 -0
- data/lib/multimedia_paradise/gui/universal_widgets/radio/radio.rb +1 -1
- data/lib/multimedia_paradise/gui/{gtk2 → universal_widgets}/simple_play_widget/README.md +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/simple_play_widget/simple_play_widget.rb +404 -0
- data/lib/multimedia_paradise/gui/universal_widgets/tag_mp3_files/tag_mp3_files.rb +3 -6
- data/lib/multimedia_paradise/java/Playlist.class +0 -0
- data/lib/multimedia_paradise/java/Playlist.java +198 -0
- data/lib/multimedia_paradise/multimedia/analyse_multimedia_file.rb +21 -19
- data/lib/multimedia_paradise/multimedia/avisynth/avisynth_code.avs +441 -442
- data/lib/multimedia_paradise/multimedia/base.rb +0 -18
- data/lib/multimedia_paradise/multimedia/chord.rb +1 -1
- data/lib/multimedia_paradise/multimedia/cut_multimedia/cut_multimedia.rb +7 -5
- data/lib/multimedia_paradise/multimedia/cut_multimedia/evaluate_from_this_file.rb +2 -2
- data/lib/multimedia_paradise/multimedia/interactive_shell.rb +22 -3
- data/lib/multimedia_paradise/multimedia/merge_multimedia.rb +4 -3
- data/lib/multimedia_paradise/multimedia/play_from_this_list.rb +4 -27
- data/lib/multimedia_paradise/multimedia/{read_meta_tags.rb → read_meta_tags/read_meta_tags.rb} +14 -19
- data/lib/multimedia_paradise/multimedia/start_length_duration.rb +3 -3
- data/lib/multimedia_paradise/project/project.rb +8 -4
- data/lib/multimedia_paradise/requires/require_the_multimedia_paradise_project.rb +5 -5
- data/lib/multimedia_paradise/requires/require_toplevel_methods_files.rb +1 -1
- data/lib/multimedia_paradise/sinatra/app.rb +3 -3
- data/lib/multimedia_paradise/statistics/README.md +6 -5
- data/lib/multimedia_paradise/statistics/video.rb +34 -14
- data/lib/multimedia_paradise/{misc → time}/long_format_to_milliseconds_converter.rb +4 -2
- data/lib/multimedia_paradise/{misc → time}/milliseconds_to_long_format_converter.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/audio_related_code.rb +138 -0
- data/lib/multimedia_paradise/toplevel_methods/chop_into_segments_of_n_seconds_size.rb +2 -2
- data/lib/multimedia_paradise/{conversions → toplevel_methods}/conversions.rb +140 -48
- data/lib/multimedia_paradise/toplevel_methods/copy_and_merge_this_video_n_times.rb +5 -5
- data/lib/multimedia_paradise/toplevel_methods/create_video_from_this_audio.rb +7 -6
- data/lib/multimedia_paradise/toplevel_methods/cut_from_to.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/denoise.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/deshake.rb +3 -6
- data/lib/multimedia_paradise/toplevel_methods/{output_directory.rb → directory_related_code.rb} +38 -1
- data/lib/multimedia_paradise/toplevel_methods/encode_this_video.rb +8 -4
- data/lib/multimedia_paradise/toplevel_methods/esystem.rb +43 -4
- data/lib/multimedia_paradise/{ffmpeg → toplevel_methods}/ffmpeg.rb +200 -193
- data/lib/multimedia_paradise/toplevel_methods/{files_and_directories.rb → files_related_code.rb} +19 -56
- data/lib/multimedia_paradise/toplevel_methods/flip_and_rotate.rb +3 -3
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file_is_video_file_is_image_file_is_multimedia_file.rb +115 -0
- data/lib/multimedia_paradise/toplevel_methods/is_on_roebe.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/{merge_multimedia_file.rb → merge.rb} +98 -4
- data/lib/multimedia_paradise/toplevel_methods/opn.rb +5 -4
- data/lib/multimedia_paradise/toplevel_methods/player_in_use.rb +14 -7
- data/lib/multimedia_paradise/toplevel_methods/query_the_audio_codec_of_this_file.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/radio.rb +1 -3
- data/lib/multimedia_paradise/toplevel_methods/return_all_video_files.rb +4 -4
- data/lib/multimedia_paradise/toplevel_methods/return_path_to_random_simpsons_video_file.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/return_random_video_file_from_the_video_collection.rb +9 -7
- data/lib/multimedia_paradise/toplevel_methods/scale_video.rb +3 -4
- data/lib/multimedia_paradise/toplevel_methods/set_title_of.rb +6 -6
- data/lib/multimedia_paradise/{help/help.rb → toplevel_methods/show_help.rb} +14 -8
- data/lib/multimedia_paradise/toplevel_methods/slow_down_this_video_file.rb +2 -3
- data/lib/multimedia_paradise/toplevel_methods/start_screencast.rb +3 -2
- data/lib/multimedia_paradise/toplevel_methods/{misc.rb → toplevel_methods.rb} +485 -527
- data/lib/multimedia_paradise/toplevel_methods/total_duration.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/use_lame_codec.rb +1 -2
- data/lib/multimedia_paradise/toplevel_methods/video_dataset.rb +1 -1
- data/lib/multimedia_paradise/version/version.rb +2 -2
- data/lib/multimedia_paradise/video/all_videos.rb +12 -19
- data/lib/multimedia_paradise/video/check_numbers.rb +76 -32
- data/lib/multimedia_paradise/video/columbo/columbo.rb +36 -14
- data/lib/multimedia_paradise/video/guess_video_name.rb +2 -10
- data/lib/multimedia_paradise/video/mike_hammer/mike_hammer.rb +2 -2
- data/lib/multimedia_paradise/video/missing_video_files/missing_video_files.rb +1 -9
- data/lib/multimedia_paradise/video/movie_searcher.rb +2 -10
- data/lib/multimedia_paradise/video/mplayer_wrapper.rb +1 -9
- data/lib/multimedia_paradise/video/random_video.rb +1 -2
- data/lib/multimedia_paradise/video/registered_video_file.rb +2 -10
- data/lib/multimedia_paradise/video/report_local_videos.rb +1 -9
- data/lib/multimedia_paradise/video/simpsons.rb +2 -10
- data/lib/multimedia_paradise/video/smart_animals/smart_animals.rb +10 -8
- data/lib/multimedia_paradise/video/speed_up_video.rb +28 -10
- data/lib/multimedia_paradise/video/store_available_video_files.rb +49 -33
- data/lib/multimedia_paradise/video/the_simpsons/README.md +0 -0
- data/lib/multimedia_paradise/video/the_simpsons/good_the_simpsons_episodes.rb +8 -8
- data/lib/multimedia_paradise/video/the_simpsons/the_simpsons.rb +14 -10
- data/lib/multimedia_paradise/video/video_information.rb +55 -49
- data/lib/multimedia_paradise/{configuration → yaml/configuration}/play_zoomed.yml +0 -0
- data/lib/multimedia_paradise/yaml/{playlist.yml → playlist/playlist.yml} +14 -15
- data/lib/multimedia_paradise/yaml/video/video.yml +1 -1
- data/lib/multimedia_paradise/yaml/video_collection/video_collection.yml +34 -32
- data/lib/multimedia_paradise/yaml/youtube/alltagsgeschichte/alltagsgeschichte.yml +61 -11
- data/lib/multimedia_paradise/yaml/youtube/songs/songs.yml +5 -3
- data/multimedia_paradise.gemspec +1 -1
- data/test/testing_audio_player.rb +3 -3
- data/test/testing_file_duration.rb +5 -5
- metadata +45 -76
- data/lib/multimedia_paradise/audio/file_duration/constants.rb +0 -53
- data/lib/multimedia_paradise/audio/waveform/class.rb +0 -341
- data/lib/multimedia_paradise/audio/waveform/constants.rb +0 -38
- data/lib/multimedia_paradise/audio/waveform/log.rb +0 -101
- data/lib/multimedia_paradise/base/constants.rb +0 -19
- data/lib/multimedia_paradise/base/encoding.rb +0 -31
- data/lib/multimedia_paradise/base/misc.rb +0 -665
- data/lib/multimedia_paradise/base/namespace.rb +0 -36
- data/lib/multimedia_paradise/base/time.rb +0 -25
- data/lib/multimedia_paradise/constants/conversions.rb +0 -62
- data/lib/multimedia_paradise/constants/directory_constants.rb +0 -139
- data/lib/multimedia_paradise/constants/encodings.rb +0 -26
- data/lib/multimedia_paradise/constants/file_constants.rb +0 -176
- data/lib/multimedia_paradise/constants/misc.rb +0 -80
- data/lib/multimedia_paradise/constants/my_video_directory.rb +0 -30
- data/lib/multimedia_paradise/constants/namespace.rb +0 -14
- data/lib/multimedia_paradise/constants/newline.rb +0 -14
- data/lib/multimedia_paradise/constants/video_filetypes.rb +0 -27
- data/lib/multimedia_paradise/conversions/README.md +0 -2
- data/lib/multimedia_paradise/ffmpeg/README.md +0 -2
- data/lib/multimedia_paradise/gui/gtk2/multimedia_converter/multimedia_converter.rb +0 -33
- data/lib/multimedia_paradise/gui/gtk2/notebook.rb +0 -144
- data/lib/multimedia_paradise/gui/gtk2/play_video_from_my_collection/play_video_from_my_collection.rb +0 -43
- data/lib/multimedia_paradise/gui/gtk2/simple_play_widget/simple_play_widget.rb +0 -40
- data/lib/multimedia_paradise/gui/gtk2/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio.rb +0 -42
- data/lib/multimedia_paradise/gui/gtk2/youtube_downloader/youtube_downloader.rb +0 -32
- data/lib/multimedia_paradise/gui/gtk3/lyrics/lyrics.rb +0 -0
- data/lib/multimedia_paradise/gui/gtk3/multimedia_converter/multimedia_converter.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/playlist/playlist.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/simple_play_widget/simple_play_widget.rb +0 -38
- data/lib/multimedia_paradise/toplevel_methods/analyze_audio_stream.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/codecs.rb +0 -50
- data/lib/multimedia_paradise/toplevel_methods/copy_file.rb +0 -18
- data/lib/multimedia_paradise/toplevel_methods/delay_audio.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/ensure_that_the_output_directory_exists.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/has_audio.rb +0 -48
- data/lib/multimedia_paradise/toplevel_methods/increase_volume_of_this_audio_file.rb +0 -61
- data/lib/multimedia_paradise/toplevel_methods/is_a_multimedia_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_image_file.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/is_video_file.rb +0 -62
- data/lib/multimedia_paradise/toplevel_methods/merge_these_videos.rb +0 -106
- data/lib/multimedia_paradise/toplevel_methods/run_sys_command.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_flac.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_mp4.rb +0 -24
- /data/doc/{MergingVideoLectures.md → merging_video_lectures/merging_video_lectures.md} +0 -0
- /data/doc/{Readme_for_the_cut_audio_component.md → readme_for_the_cut_audio_component/Readme_for_the_cut_audio_component.md} +0 -0
- /data/lib/multimedia_paradise/yaml/{audio_formats.yml → audio_formats/audio_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{image_formats.yml → image_formats/image_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{lyrics.yml → lyrics/lyrics.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{music_genres.yml → music_genres/music_genres.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{song_tags.yml → song_tags/song_tags.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{use_this_video_player.yml → use_this_video_player/use_this_video_player.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_encoding_settings.yml → video_encoding_settings/video_encoding_settings.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_filter_aliases.yml → video_filter_aliases/video_filter_aliases.yml} +0 -0
@@ -0,0 +1,138 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'multimedia_paradise/toplevel_methods/audio_related_code.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module MultimediaParadise
|
8
|
+
|
9
|
+
require 'multimedia_paradise/toplevel_methods/e.rb'
|
10
|
+
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
11
|
+
|
12
|
+
# ========================================================================= #
|
13
|
+
# === MultimediaParadise.delay_audio
|
14
|
+
#
|
15
|
+
# This method will delay the audio of a video-file, by n-seconds.
|
16
|
+
#
|
17
|
+
# The second argument to this method, `by`, handles that delay.
|
18
|
+
# ========================================================================= #
|
19
|
+
def self.delay_audio(
|
20
|
+
this_file = ARGV,
|
21
|
+
by = '3.85 seconds' # <- Input your delay here.
|
22
|
+
)
|
23
|
+
require 'multimedia_paradise/toplevel_methods/ffmpeg.rb'
|
24
|
+
ffmpeg_delay_audio(this_file, by)
|
25
|
+
end
|
26
|
+
|
27
|
+
# ========================================================================= #
|
28
|
+
# === MultimediaParadise.has_audio?
|
29
|
+
#
|
30
|
+
# This method can determine whether a multimedia-file has audio or
|
31
|
+
# does not.
|
32
|
+
# ========================================================================= #
|
33
|
+
def self.has_audio?(
|
34
|
+
i = ARGV
|
35
|
+
)
|
36
|
+
if i.is_a? Array
|
37
|
+
i = i.flatten.first
|
38
|
+
end
|
39
|
+
result = `ffprobe -i #{i} -show_streams -select_streams a -loglevel error`.to_s.strip
|
40
|
+
!result.empty?
|
41
|
+
end
|
42
|
+
|
43
|
+
# ========================================================================= #
|
44
|
+
# === MultimediaParadise.verbose_output_has_audio?
|
45
|
+
#
|
46
|
+
# This variant will show verbose output.
|
47
|
+
# ========================================================================= #
|
48
|
+
def self.verbose_output_has_audio?(i = ARGV)
|
49
|
+
require 'multimedia_paradise/colours/colours.rb'
|
50
|
+
result = has_audio?(i)
|
51
|
+
if result
|
52
|
+
e "#{rev}Yes, the file at "
|
53
|
+
e sfile(" #{i}")
|
54
|
+
e "#{rev}does contain an audio stream."
|
55
|
+
else
|
56
|
+
e "#{rev}No, the file at "
|
57
|
+
e sfile(" #{i}")
|
58
|
+
e "#{rev}does NOT contain an audio stream."
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# ========================================================================= #
|
63
|
+
# === MultimediaParadise.increase_volume_of_this_audio_file
|
64
|
+
#
|
65
|
+
# The toplevel-method MultimediaParadise.increase_volume_of_this_audio_file
|
66
|
+
# can boost the volume of an audio file, by making use of sox or ffmpeg.
|
67
|
+
#
|
68
|
+
# Sox is currently the default, whereas ffmpeg is used if the input
|
69
|
+
# given ends with 'db', which is short for decibel. The latter variant
|
70
|
+
# allows you to just input an increase or decrease in decibel.
|
71
|
+
#
|
72
|
+
# The sox command can modify the audio volume, up or down, using the -v
|
73
|
+
# flag, followed by a multiplier. The following example doubles (x2)
|
74
|
+
# the audio volume of a file.
|
75
|
+
#
|
76
|
+
# sox -v 2.0 original-music.ogg louder-music.ogg
|
77
|
+
#
|
78
|
+
# ========================================================================= #
|
79
|
+
def self.increase_volume_of_this_audio_file(
|
80
|
+
input_file,
|
81
|
+
modify_volume_by_this_value = '5.0' # or 3.0 or 4.0 and so forth.
|
82
|
+
)
|
83
|
+
unless input_file.is_a? Array
|
84
|
+
input_file = [input_file]
|
85
|
+
end
|
86
|
+
if modify_volume_by_this_value.to_s.downcase.end_with? 'db'
|
87
|
+
ffmpeg_increase_volume_of_this_audio_file(
|
88
|
+
input_file, modify_volume_by_this_value
|
89
|
+
)
|
90
|
+
else
|
91
|
+
case modify_volume_by_this_value # case tag
|
92
|
+
when '1/4', :one_fourth,'25%'
|
93
|
+
modify_volume_by_this_value = 0.25
|
94
|
+
end
|
95
|
+
# ======================================================================= #
|
96
|
+
# Batch-process the Array next.
|
97
|
+
# ======================================================================= #
|
98
|
+
input_file.each {|this_file|
|
99
|
+
value = modify_volume_by_this_value.to_s
|
100
|
+
output_file = "modified_file_by_v#{value}_#{this_file}"
|
101
|
+
_ = 'sox -v '+value+
|
102
|
+
' '+this_file+' '+output_file
|
103
|
+
esystem _
|
104
|
+
}
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# ========================================================================= #
|
109
|
+
# === MultimediaParadise.analyze_audio_stream
|
110
|
+
#
|
111
|
+
# This method will use ffmpeg in order to analyze the audio stream. A
|
112
|
+
# Hash will be returned, which will keep the decibel-score value.
|
113
|
+
#
|
114
|
+
# For more documentation see the method
|
115
|
+
# MultimediaParadise.ffmpeg_analyze_audio_stream().
|
116
|
+
# ========================================================================= #
|
117
|
+
def self.analyze_audio_stream(
|
118
|
+
of_this_file
|
119
|
+
)
|
120
|
+
require 'multimedia_paradise/toplevel_methods/ffmpeg.rb'
|
121
|
+
ffmpeg_analyze_audio_stream(of_this_file)
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
if __FILE__ == $PROGRAM_NAME
|
127
|
+
alias e puts
|
128
|
+
ARGV.each {|entry|
|
129
|
+
e MultimediaParadise.verbose_output_has_audio?(entry)
|
130
|
+
}
|
131
|
+
# MultimediaParadise.delay_audio(ARGV)
|
132
|
+
MultimediaParadise.delay_audio(ARGV, 80)
|
133
|
+
pp MultimediaParadise.analyze_audio_stream(ARGV)
|
134
|
+
MultimediaParadise.increase_volume_of_this_audio_file(ARGV, '+20dB')
|
135
|
+
end # analyze_audio $MY_SONGS/YoonDohyun_Dolgo.mp3
|
136
|
+
# hasaudio
|
137
|
+
# delayaudio foo.mp4
|
138
|
+
# increase_volume_of_this_audio_file
|
@@ -4,10 +4,10 @@
|
|
4
4
|
# =========================================================================== #
|
5
5
|
# require 'multimedia_paradise/toplevel_methods/chop_into_segments_of_n_seconds_size.rb'
|
6
6
|
# =========================================================================== #
|
7
|
-
require 'multimedia_paradise/ffmpeg/ffmpeg.rb'
|
8
|
-
|
9
7
|
module MultimediaParadise
|
10
8
|
|
9
|
+
require 'multimedia_paradise/toplevel_methods/ffmpeg.rb'
|
10
|
+
|
11
11
|
# ========================================================================= #
|
12
12
|
# === MultimediaParadise.chop_into_segments_of_n_seconds_size
|
13
13
|
#
|
@@ -2,6 +2,8 @@
|
|
2
2
|
# Encoding: UTF-8
|
3
3
|
# frozen_string_literal: true
|
4
4
|
# =========================================================================== #
|
5
|
+
# Conversion-related methods will be stored in this file.
|
6
|
+
#
|
5
7
|
# Code in this .rb file has to do with converting multimedia formats, and
|
6
8
|
# thus will contain all kind of conversion-related aspects - but it can
|
7
9
|
# also be used for cutting, splitting etc.. of audio files, at the least
|
@@ -12,7 +14,6 @@
|
|
12
14
|
# called image_paradise.
|
13
15
|
# =========================================================================== #
|
14
16
|
# require 'multimedia_paradise/toplevel_methods/conversions.rb'
|
15
|
-
# MultimediaParadise.video_to_images
|
16
17
|
# =========================================================================== #
|
17
18
|
module MultimediaParadise
|
18
19
|
|
@@ -24,13 +25,14 @@ module MultimediaParadise
|
|
24
25
|
require 'cliner'
|
25
26
|
rescue LoadError; end
|
26
27
|
|
27
|
-
require 'multimedia_paradise/constants/
|
28
|
+
require 'multimedia_paradise/constants/constants.rb'
|
29
|
+
require 'multimedia_paradise/actions/actions.rb'
|
30
|
+
require 'multimedia_paradise/toplevel_methods/directory_related_code.rb'
|
28
31
|
require 'multimedia_paradise/toplevel_methods/e.rb'
|
29
32
|
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
30
|
-
require 'multimedia_paradise/toplevel_methods/
|
31
|
-
require 'multimedia_paradise/toplevel_methods/
|
33
|
+
require 'multimedia_paradise/toplevel_methods/ffmpeg.rb'
|
34
|
+
require 'multimedia_paradise/toplevel_methods/merge.rb'
|
32
35
|
require 'multimedia_paradise/toplevel_methods/rds.rb'
|
33
|
-
require 'multimedia_paradise/toplevel_methods/run_sys_command.rb'
|
34
36
|
|
35
37
|
# ========================================================================= #
|
36
38
|
# === @use_this_binary_for_conversions
|
@@ -54,6 +56,110 @@ module MultimediaParadise
|
|
54
56
|
Cliner.cliner
|
55
57
|
end
|
56
58
|
|
59
|
+
# ========================================================================= #
|
60
|
+
# === MultimediaParadise.to_mp4
|
61
|
+
# ========================================================================= #
|
62
|
+
def self.to_mp4(*these_files)
|
63
|
+
File.absolute_path(
|
64
|
+
ffmpeg_to_mp4(these_files)
|
65
|
+
)
|
66
|
+
end
|
67
|
+
|
68
|
+
# ========================================================================= #
|
69
|
+
# === MultimediaParadise.to_gif
|
70
|
+
#
|
71
|
+
# This method can be used to quickly turn an .avi file or a .mp4
|
72
|
+
# file into an animated .gif.
|
73
|
+
#
|
74
|
+
# The quality is pretty low, so this is not ideal, but if you
|
75
|
+
# have a use case for animated .gif files then this is one
|
76
|
+
# way to do so.
|
77
|
+
#
|
78
|
+
# Usage example:
|
79
|
+
#
|
80
|
+
# MultimediaParadise.to_gif('foobar.mp4')
|
81
|
+
#
|
82
|
+
# ========================================================================= #
|
83
|
+
def self.to_gif(i)
|
84
|
+
[i].flatten.compact.each {|this_video_file|
|
85
|
+
_ = File.basename(this_video_file).
|
86
|
+
delete_suffix(
|
87
|
+
File.extname(this_video_file)
|
88
|
+
)
|
89
|
+
name_of_the_output_gif_file = "output_#{_}.gif"
|
90
|
+
cmd = "ffmpeg -i #{this_video_file} -pix_fmt rgb8 #{name_of_the_output_gif_file}" # Or use 0rgb.
|
91
|
+
esystem(cmd)
|
92
|
+
return name_of_the_output_gif_file
|
93
|
+
}
|
94
|
+
end
|
95
|
+
|
96
|
+
# ========================================================================= #
|
97
|
+
# === MultimediaParadise.to_ts
|
98
|
+
#
|
99
|
+
# This will batch-convert all .mp4 files into .ts files.
|
100
|
+
# ========================================================================= #
|
101
|
+
def self.to_ts
|
102
|
+
files = Dir['*.mp4']
|
103
|
+
files.each {|this_file|
|
104
|
+
cmd = 'ffmpeg -i '+this_file+' -c copy '\
|
105
|
+
'-bsf:v h264_mp4toannexb -f mpegts '+
|
106
|
+
this_file.sub(/#{File.extname(this_file)}$/,'')+
|
107
|
+
'.ts'
|
108
|
+
|
109
|
+
esystem cmd
|
110
|
+
}
|
111
|
+
end
|
112
|
+
|
113
|
+
# ========================================================================= #
|
114
|
+
# === MultimediaParadise.to_ogg
|
115
|
+
#
|
116
|
+
# Convert e. g. a .mp3 file into an .ogg file.
|
117
|
+
#
|
118
|
+
# The first argument should be an Array.
|
119
|
+
#
|
120
|
+
# The name MultimediaParadise.codec_conversion() is a legacy name for
|
121
|
+
# this method.
|
122
|
+
#
|
123
|
+
# In raw ffmpeg this method would be similar to:
|
124
|
+
#
|
125
|
+
# ffmpeg -i input.mp3 -c:a libvorbis output.ogg
|
126
|
+
#
|
127
|
+
# ========================================================================= #
|
128
|
+
def self.to_ogg(
|
129
|
+
input_files,
|
130
|
+
use_this_codec = :libvorbis
|
131
|
+
)
|
132
|
+
[input_files].flatten.compact.each {|this_input_file|
|
133
|
+
action(:to_ogg, this_input_file)
|
134
|
+
}
|
135
|
+
end; self.instance_eval { alias codec_conversion to_ogg } # === MultimediaParadise.codec_conversion
|
136
|
+
|
137
|
+
# ========================================================================= #
|
138
|
+
# === MultimediaParadise.to_flac
|
139
|
+
#
|
140
|
+
# Convert e. g. a .mp3 file into a .flac file.
|
141
|
+
# ========================================================================= #
|
142
|
+
def self.to_flac(input_files)
|
143
|
+
[input_files].flatten.compact.each {|this_input_file|
|
144
|
+
output_name = File.absolute_path(
|
145
|
+
"output_#{File.basename(this_input_file)}".
|
146
|
+
delete_suffix(File.extname(this_input_file))+'.flac'
|
147
|
+
)
|
148
|
+
e
|
149
|
+
esystem "ffmpeg -i #{this_input_file} #{output_name}"
|
150
|
+
e
|
151
|
+
}
|
152
|
+
end
|
153
|
+
|
154
|
+
# ========================================================================= #
|
155
|
+
# === MultimediaParadise.to_aiff
|
156
|
+
# ========================================================================= #
|
157
|
+
def self.to_aiff(i)
|
158
|
+
MultimediaParadise.esystem(
|
159
|
+
"ffmpeg -i #{_} -f aiff -ab 128000 -ar 44100 #{_}.aif"
|
160
|
+
)
|
161
|
+
end
|
162
|
+
|
57
163
|
# ========================================================================= #
|
58
164
|
# === MultimediaParadise.general_format_conversion
|
59
165
|
#
|
@@ -107,7 +213,7 @@ module MultimediaParadise
|
|
107
213
|
# ===================================================================== #
|
108
214
|
when /^to(_|-)?ogg$/i,
|
109
215
|
/ogg$/i
|
110
|
-
|
216
|
+
return MultimediaParadise.to_ogg(input_file)
|
111
217
|
# ===================================================================== #
|
112
218
|
# === to_aac
|
113
219
|
# ===================================================================== #
|
@@ -132,7 +238,8 @@ module MultimediaParadise
|
|
132
238
|
# ===================================================================== #
|
133
239
|
when /^to(_|-)?mp3$/i,
|
134
240
|
/mp3$/i
|
135
|
-
|
241
|
+
MultimediaParadise.to_mp3(input_file)
|
242
|
+
return
|
136
243
|
# ===================================================================== #
|
137
244
|
# === to_mp3
|
138
245
|
# ===================================================================== #
|
@@ -178,13 +285,13 @@ module MultimediaParadise
|
|
178
285
|
please_be_patient(
|
179
286
|
input_file, 'to '+File.extname(target_file)+' format'
|
180
287
|
)
|
181
|
-
|
288
|
+
MultimediaParadise.display_warning(:lossy)
|
182
289
|
}
|
183
290
|
# =================================================================== #
|
184
291
|
# By default we will use ffmpeg, but this can be changed to sox or
|
185
292
|
# any other toolkit.
|
186
293
|
# =================================================================== #
|
187
|
-
_ = "#{
|
294
|
+
_ = "#{use_this_binary_for_conversions?} -y ".dup
|
188
295
|
_ << " -i #{input_file} "
|
189
296
|
# =================================================================== #
|
190
297
|
# Do some ad-hoc clean up next.
|
@@ -222,27 +329,11 @@ module MultimediaParadise
|
|
222
329
|
end; self.instance_eval { alias convert general_format_conversion } # === MultimediaParadise.convert
|
223
330
|
self.instance_eval { alias basic_conversion general_format_conversion } # === MultimediaParadise.basic_conversion
|
224
331
|
|
225
|
-
# ========================================================================= #
|
226
|
-
# === MultimediaParadise.mp4_to_mp3
|
227
|
-
# ========================================================================= #
|
228
|
-
def self.mp4_to_mp3(a, b = '.mp3')
|
229
|
-
::MultimediaParadise.general_format_conversion(a, b)
|
230
|
-
end
|
231
|
-
|
232
|
-
# ========================================================================= #
|
233
|
-
# === MultimediaParadise.ogg_to_mp3
|
234
|
-
#
|
235
|
-
# Convert .ogg files into .mp3 files.
|
236
|
-
# ========================================================================= #
|
237
|
-
def self.ogg_to_mp3(this_file, to = '.mp3')
|
238
|
-
::MultimediaParadise.general_format_conversion(this_file, to)
|
239
|
-
end
|
240
|
-
|
241
332
|
# ========================================================================= #
|
242
333
|
# === MultimediaParadise.mp3_to_opus
|
243
334
|
# ========================================================================= #
|
244
335
|
def self.mp3_to_opus(this_file, to = '.opus')
|
245
|
-
|
336
|
+
MultimediaParadise.general_format_conversion(this_file, to)
|
246
337
|
end
|
247
338
|
|
248
339
|
# ========================================================================= #
|
@@ -281,7 +372,7 @@ module MultimediaParadise
|
|
281
372
|
# From .m4a audio to a .mp3 file.
|
282
373
|
# ========================================================================= #
|
283
374
|
def self.m4a_to_mp3(this_file, to = '.mp3')
|
284
|
-
|
375
|
+
MultimediaParadise.general_format_conversion(this_file, to)
|
285
376
|
end
|
286
377
|
|
287
378
|
# ========================================================================= #
|
@@ -291,22 +382,17 @@ module MultimediaParadise
|
|
291
382
|
# ffmpeg for this. This may be superior to the other variants actually.
|
292
383
|
# ========================================================================= #
|
293
384
|
def self.any_to_mp3(this_file, to = '.mp3')
|
294
|
-
|
385
|
+
MultimediaParadise.general_format_conversion(this_file, to)
|
295
386
|
end
|
296
387
|
|
297
388
|
# ========================================================================= #
|
298
|
-
# === MultimediaParadise.
|
389
|
+
# === MultimediaParadise.convert_these_images_into_a_video
|
299
390
|
#
|
300
|
-
# This
|
301
|
-
#
|
302
|
-
# We do this by using the command --volume FACTOR.
|
391
|
+
# This method can be used to "assemble" images into a video.
|
303
392
|
# ========================================================================= #
|
304
|
-
def self.
|
305
|
-
|
306
|
-
|
307
|
-
)
|
308
|
-
run_sys_command 'sox --volume '+
|
309
|
-
by_how_much+' '+of_this_file+' AUDIO_REDUCED_'+of_this_file
|
393
|
+
def self.convert_these_images_into_a_video(*images)
|
394
|
+
_ = 'ffmpeg -f image2 -i '+images.join(' ').strip+' video.mpg'
|
395
|
+
esystem _
|
310
396
|
end
|
311
397
|
|
312
398
|
# ========================================================================= #
|
@@ -317,7 +403,7 @@ module MultimediaParadise
|
|
317
403
|
# We will use ffmpeg for this conversion.
|
318
404
|
# ========================================================================= #
|
319
405
|
def self.wav_to_opus(this_file, to = '.opus')
|
320
|
-
|
406
|
+
MultimediaParadise.general_format_conversion(this_file, to)
|
321
407
|
end
|
322
408
|
|
323
409
|
# ========================================================================= #
|
@@ -346,7 +432,7 @@ module MultimediaParadise
|
|
346
432
|
def self.wav_to_mp3(
|
347
433
|
this_file, bitrate_to_use = 192, to = '.mp3'
|
348
434
|
)
|
349
|
-
|
435
|
+
MultimediaParadise.general_format_conversion(this_file, to) {{
|
350
436
|
bitrate_to_use: bitrate_to_use
|
351
437
|
}}
|
352
438
|
end
|
@@ -529,7 +615,7 @@ module MultimediaParadise
|
|
529
615
|
def self.au_to_wav(
|
530
616
|
this_file, to = 'wav'
|
531
617
|
)
|
532
|
-
|
618
|
+
MultimediaParadise.general_format_conversion(this_file, to: ot)
|
533
619
|
end
|
534
620
|
|
535
621
|
# ========================================================================= #
|
@@ -681,7 +767,7 @@ module MultimediaParadise
|
|
681
767
|
)
|
682
768
|
optional_target_format = optional_target_format.to_s
|
683
769
|
optional_target_format << ' ' if optional_target_format.empty?
|
684
|
-
opn; e 'Converting `'
|
770
|
+
opn; e 'Converting `'+sfile(file)+'` '+
|
685
771
|
optional_target_format.strip+
|
686
772
|
' next, please be patient.'
|
687
773
|
end
|
@@ -842,7 +928,7 @@ module MultimediaParadise
|
|
842
928
|
this_file,
|
843
929
|
to = '.aac'
|
844
930
|
)
|
845
|
-
|
931
|
+
MultimediaParadise.general_format_conversion(this_file, to)
|
846
932
|
end; self.instance_eval { alias to_aac mp3_to_aac } # === MultimediaParadise.to_aac
|
847
933
|
|
848
934
|
# ========================================================================= #
|
@@ -861,7 +947,7 @@ module MultimediaParadise
|
|
861
947
|
this_file,
|
862
948
|
to = '.ogg'
|
863
949
|
)
|
864
|
-
|
950
|
+
MultimediaParadise.general_format_conversion(this_file, to)
|
865
951
|
end; self.instance_eval { alias mp3toogg mp3_to_ogg } # === MultimediaParadise.mp3toogg
|
866
952
|
self.instance_eval { alias mp32ogg mp3_to_ogg } # === MultimediaParadise.mp32ogg
|
867
953
|
self.instance_eval { alias to_ogg mp3_to_ogg } # === MultimediaParadise.to_ogg
|
@@ -875,7 +961,7 @@ module MultimediaParadise
|
|
875
961
|
#
|
876
962
|
# ========================================================================= #
|
877
963
|
def self.webm_to_mp3(a, b = '.mp3')
|
878
|
-
|
964
|
+
MultimediaParadise.general_format_conversion(a, b)
|
879
965
|
end
|
880
966
|
|
881
967
|
# ========================================================================= #
|
@@ -887,7 +973,7 @@ module MultimediaParadise
|
|
887
973
|
#
|
888
974
|
# ========================================================================= #
|
889
975
|
def self.to_webm(a, b = '.webm')
|
890
|
-
|
976
|
+
MultimediaParadise.general_format_conversion(a, b)
|
891
977
|
end
|
892
978
|
|
893
979
|
# ========================================================================= #
|
@@ -899,7 +985,7 @@ module MultimediaParadise
|
|
899
985
|
#
|
900
986
|
# ========================================================================= #
|
901
987
|
def self.to_mkv(a, b = '.mkv')
|
902
|
-
|
988
|
+
MultimediaParadise.general_format_conversion(a, b)
|
903
989
|
end
|
904
990
|
|
905
991
|
# ========================================================================= #
|
@@ -913,12 +999,18 @@ module MultimediaParadise
|
|
913
999
|
#
|
914
1000
|
# ========================================================================= #
|
915
1001
|
def self.to_dv(a, b = '.dv')
|
916
|
-
|
1002
|
+
MultimediaParadise.general_format_conversion(a, b)
|
917
1003
|
end
|
918
1004
|
|
919
1005
|
end
|
920
1006
|
|
921
1007
|
if __FILE__ == $PROGRAM_NAME
|
1008
|
+
alias e puts
|
1009
|
+
# ========================================================================= #
|
1010
|
+
# The next variants should be conversions in individual bin/ files:
|
1011
|
+
# ========================================================================= #
|
1012
|
+
MultimediaParadise.to_mp4(ARGV)
|
1013
|
+
MultimediaParadise.to_flac(ARGV)
|
922
1014
|
# MultimediaParadise.extract_audio_from_until('/Depot/j/foobar.mp4')
|
923
1015
|
# MultimediaParadise.increase_volume '/Depot/j/CLIPPED_foobar.mp4', '3'
|
924
1016
|
# MultimediaParadise.increase_volume '/Depot/j/ack.mp3', '1.5'
|
@@ -4,13 +4,13 @@
|
|
4
4
|
# =========================================================================== #
|
5
5
|
# require 'multimedia_paradise/toplevel_methods/copy_and_merge_this_video_n_times.rb'
|
6
6
|
# =========================================================================== #
|
7
|
-
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
8
|
-
require 'multimedia_paradise/toplevel_methods/copy_file.rb'
|
9
|
-
require 'multimedia_paradise/toplevel_methods/merge_these_videos.rb'
|
10
|
-
require 'multimedia_paradise/colours/colours.rb'
|
11
|
-
|
12
7
|
module MultimediaParadise
|
13
8
|
|
9
|
+
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
10
|
+
require 'multimedia_paradise/toplevel_methods/files_related_code.rb'
|
11
|
+
require 'multimedia_paradise/toplevel_methods/merge.rb'
|
12
|
+
require 'multimedia_paradise/colours/colours.rb'
|
13
|
+
|
14
14
|
# =========================================================================== #
|
15
15
|
# === MultimediaParadise.copy_and_merge_this_video_n_times
|
16
16
|
#
|
@@ -4,12 +4,12 @@
|
|
4
4
|
# =========================================================================== #
|
5
5
|
# require 'multimedia_paradise/toplevel_methods/create_video_from_this_audio.rb'
|
6
6
|
# =========================================================================== #
|
7
|
-
require 'multimedia_paradise/toplevel_methods/e.rb'
|
8
|
-
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
9
|
-
require 'multimedia_paradise/toplevel_methods/is_image_file.rb'
|
10
|
-
|
11
7
|
module MultimediaParadise
|
12
8
|
|
9
|
+
require 'multimedia_paradise/toplevel_methods/e.rb'
|
10
|
+
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
11
|
+
require 'multimedia_paradise/toplevel_methods/is_audio_file_is_video_file_is_image_file_is_multimedia_file.rb'
|
12
|
+
|
13
13
|
# ========================================================================= #
|
14
14
|
# === MultimediaParadise.create_video_from_this_audio
|
15
15
|
#
|
@@ -61,5 +61,6 @@ module MultimediaParadise
|
|
61
61
|
end
|
62
62
|
|
63
63
|
if __FILE__ == $PROGRAM_NAME
|
64
|
-
MultimediaParadise.create_video_from_this_audio(ARGV)
|
65
|
-
end #
|
64
|
+
MultimediaParadise.create_video_from_this_audio(ARGV[0], ARGV[1])
|
65
|
+
end # createvideofromthisaudio foobar.mp3 /home/x/data/images/NJOY/Susanne_03.jpg
|
66
|
+
# createvideofromthisaudio foobar.mp3 foobar.jpg
|
@@ -124,11 +124,11 @@ module MultimediaParadise
|
|
124
124
|
_ << " #{output_file}"
|
125
125
|
esystem _
|
126
126
|
if File.exist? output_file
|
127
|
-
e "Created file at `#{sfile(output_file)}`."
|
127
|
+
e "Created file at `#{sfile(output_file)}#{rev}`."
|
128
128
|
return File.absolute_path(output_file) # And return it here, just to make this method more useful.
|
129
129
|
end
|
130
130
|
else
|
131
|
-
|
131
|
+
no_file_exists_at(use_this_file)
|
132
132
|
end
|
133
133
|
else
|
134
134
|
e 'Please provide a valid file, via a key called '\
|
@@ -4,10 +4,10 @@
|
|
4
4
|
# =========================================================================== #
|
5
5
|
# require 'multimedia_paradise/toplevel_methods/denoise.rb'
|
6
6
|
# =========================================================================== #
|
7
|
-
require 'multimedia_paradise/ffmpeg/ffmpeg.rb'
|
8
|
-
|
9
7
|
module MultimediaParadise
|
10
8
|
|
9
|
+
require 'multimedia_paradise/toplevel_methods/ffmpeg.rb'
|
10
|
+
|
11
11
|
# ========================================================================= #
|
12
12
|
# === MultimediaParadise.denoise
|
13
13
|
#
|
@@ -4,10 +4,10 @@
|
|
4
4
|
# =========================================================================== #
|
5
5
|
# require 'multimedia_paradise/toplevel_methods/deshake.rb'
|
6
6
|
# =========================================================================== #
|
7
|
-
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
8
|
-
|
9
7
|
module MultimediaParadise
|
10
8
|
|
9
|
+
require 'multimedia_paradise/toplevel_methods/esystem.rb'
|
10
|
+
|
11
11
|
# ========================================================================= #
|
12
12
|
# === MultimediaParadise.deshake
|
13
13
|
#
|
@@ -29,11 +29,8 @@ module MultimediaParadise
|
|
29
29
|
output_file = "output_#{input_file}"
|
30
30
|
use_this_command = "ffmpeg -i #{input_file} -vf deshake #{output_file}"
|
31
31
|
e
|
32
|
-
|
33
|
-
e
|
34
|
-
system use_this_command
|
32
|
+
esystem use_this_command, :steelblue, :use_newline
|
35
33
|
end
|
36
|
-
|
37
34
|
end
|
38
35
|
|
39
36
|
end
|
data/lib/multimedia_paradise/toplevel_methods/{output_directory.rb → directory_related_code.rb}
RENAMED
@@ -2,12 +2,39 @@
|
|
2
2
|
# Encoding: UTF-8
|
3
3
|
# frozen_string_literal: true
|
4
4
|
# =========================================================================== #
|
5
|
-
# require 'multimedia_paradise/toplevel_methods/
|
5
|
+
# require 'multimedia_paradise/toplevel_methods/directory_related_code.rb'
|
6
6
|
# =========================================================================== #
|
7
7
|
module MultimediaParadise
|
8
8
|
|
9
|
+
require 'fileutils'
|
9
10
|
require 'multimedia_paradise/toplevel_methods/is_on_roebe.rb'
|
10
11
|
|
12
|
+
# ========================================================================= #
|
13
|
+
# === MultimediaParadise.mkdir
|
14
|
+
#
|
15
|
+
# This method can be used to create a directory on the local computer
|
16
|
+
# system.
|
17
|
+
# ========================================================================= #
|
18
|
+
def self.mkdir(i)
|
19
|
+
FileUtils.mkdir_p(i)
|
20
|
+
end
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# === MultimediaParadise.ensure_that_the_output_directory_exists
|
24
|
+
#
|
25
|
+
# We must make sure that the output directory exists, hence the
|
26
|
+
# check belove and the call to FileUtils.mkdir_p().
|
27
|
+
# ========================================================================= #
|
28
|
+
def self.ensure_that_the_output_directory_exists(
|
29
|
+
output_directory = MultimediaParadise.output_directory?
|
30
|
+
)
|
31
|
+
unless File.exist? output_directory
|
32
|
+
FileUtils.mkdir_p(
|
33
|
+
output_directory
|
34
|
+
)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
11
38
|
# ========================================================================= #
|
12
39
|
# === @output_directory
|
13
40
|
# ========================================================================= #
|
@@ -58,4 +85,14 @@ module MultimediaParadise
|
|
58
85
|
self.instance_eval { alias log_directory? output_directory? } # === MultimediaParadise.log_directory?
|
59
86
|
self.instance_eval { alias log_dir? output_directory? } # === MultimediaParadise.log_dir?
|
60
87
|
|
88
|
+
# ========================================================================= #
|
89
|
+
# === MultimediaParadise.chdir
|
90
|
+
#
|
91
|
+
# Use this method if you wish to change directory to another target
|
92
|
+
# directory.
|
93
|
+
# ========================================================================= #
|
94
|
+
def self.chdir(i)
|
95
|
+
Dir.chdir(i) if File.directory? i
|
96
|
+
end; self.instance_eval { alias cd chdir } # === MultimediaParadise.cd
|
97
|
+
|
61
98
|
end
|