diff options
Diffstat (limited to 'opt/noNoise-master/README.rst')
-rw-r--r-- | opt/noNoise-master/README.rst | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/opt/noNoise-master/README.rst b/opt/noNoise-master/README.rst new file mode 100644 index 0000000..0efdbd4 --- /dev/null +++ b/opt/noNoise-master/README.rst @@ -0,0 +1,160 @@ +Introduction +============ + +With home made videos or screencasts, we often find a constant noise in our recording due to electric wiring, fan, choke coil of fluorescent +lamp etc. This could be irritating.But fortunately, these noises can be easily detected and can be removed with GUI based tools, such as +Audacity. +To use any GUI based tool, we need to extract audio manually and then feed it to the software, once done we have to again join the noisefree +audio with the video. This is OK with 1 or 2 files. But to for automating each step and to handle multiple files we need a simple script. + +One can simply use `sox` and `ffmpeg` commands shown below in given order to get the same result(see `Working`). + + +UPDATE for 14.04 +---------------- + +Install **libav-tools** and **sox**. + +Run as :: + + $ bash noNoise.sh noisyVideo.mp4 noise-reduction-factor + +This will create an backup file of original video in **/tmp** +and noisefreeVideo in **pwd**. + +Example :: + + $ bash noNoise.sh Kazam_screencast_00000.mp4 0.2 + +It will create **noisefree_Kazam_screencast_00000.mp4.mp4** in **pwd** +and a backup of original video in **/tmp/orig_Kazam_screencast_00000.mp4** + +This is just an early fix, will add more features soon. + +Please raise issues for any bugs or email me for feature requests. + +Also, I recently came across **Kazam** package (available in repositories), +its a good screen recorder with most needed keyboard shortcuts, such as + +* start recording: Super + Control + r +* pause recording: Super + Control + p +* finish recording: Super + Control + f +* show Kazam: Super + Control + s +* quit: Super + Control + q + +Required packages (Upto Ubuntu 13.10) +------------------------------------- + + * sox + + * ffmpeg + + * ffmpeg2theora + + * libmp3lame0 + + * Linux machine with default python + + + +Usage +----- + +### Remove noise from a single file + + + $ python noNoise.py VideoWithNoise.ogv CleanVideo.ogv + (source file) (destination file) + +(OR) + + $ python noNoise.py VideoWithNoise.ogv CleanVideo.ogv 0.21 + (source file) (destination file) (noise factor) + + The third argument is optional(Noise factor). The scale spans from + `0.0` to `1.0`. Zero means no noise supression and 1.0 means full. The full + scale is avoided. Best optimum result is found between `0.2` to `0.3`. By default + script will take `0.26`. One can experiment with noise factor to get best noise + free video. + NOTE: Careful, destination file will be overwritten if exist in given path. + + + +### Remove noise from all files inside a directory + + + $ python noNoise.py allNoisyFiles allCleanFiles + (source dir) (destination dir) + +(OR) + + $ python noNoise.py allNoisyFiles allCleanFiles 0.21 + (source Dir) (destination dir) (Noise factor) + +NOTE: Please don't use any '/' after directory name. It will spit error. +The fix is possible, but I don't want to spend time on it. This script is dirty +but useful(atleast for me). When I find time, I will surely modify it. Meanwhile +you all are welcome to add modifications. + + + +Working: +------- +###1. Extracting video in less compressed format + + ffmpeg -i 1.ogv -sameq -an 2.wmv + + Extracting video in wmv format for easy editing(less compressed + than mp4,ogv,avi). We can leave the video intact and combine the + noiseless audio later to it, but it will hamper the video quality + of the newly joined video. + The size of this 'wmv' will be approximately 5 times than that of + original 'ogv' video. + + +###2. Extracting audio in less compressed format + + ffmpeg -i 1.ogv -sameq 2.wav + + Extracting audio in wav format for fast & easy editing.The size of the + `wav` audio file will be approximately 8 times larger than the original. + + +###3. Getting noise profile + + sox 2.wav -t null /dev/null trim 0 0.5 noiseprof myprofile + + Creating a noise profile of original audio at 0 to 0.5 second. + One can change this duration if required. In most cases the + standard noise is evenly distributed throughout the recording(eg: + fan, PC etc), so the default 0 to 0.5 value will do the trick. + +###4. Converting audio according to noise profile + + sox 2.wav 2-noisefree.wav noisered myprofile 0.26 + + Creating a noisefree audio based on our noise profile. The value + `0.26` is important. This is scale for noise removal. 0 means no removal + and 1 means full removal. The full removal will supress most of the + orginal audio too. So as per my R&D, I found `0.26` to be most optimized + one for noise removal. + + +###5. Combining back audio and video + + ffmpeg -i 2-noisefree.wav -i 2.wmv -sameq vid.wmv + + Merging new noiseless audio and old video together. + + +###6. Final conversion + + ffmpeg2theora vid.wmv -o vid.ogv + + Now converting wmv into our favorite ogv format. This will create a + `vid.ogv` of almost same size that of original video. + + +License +------- +GNU GPLV3 |