Sponsored Content
Top Forums Shell Programming and Scripting Need a script for automation the convert a lot number audio files to another format Post 302957614 by temp-usr on Tuesday 13th of October 2015 07:57:44 AM
Old 10-13-2015
Hammer & Screwdriver Need a script for automation the convert a lot number audio files to another format

I have a lot number audio files in the MP3 proprietary format, I want to convert them to 'opus' the free and higher quality format, with keep metadata also.

My selection command-line programs are SoX (Sound eXchange) for convert MP3 files to 'AIFF' format in order to keep quality and metadata* and 'opusenc'[1] the official encoder for convert 'AIFF' files to 'opus' format. Most important part of the work is use of 'mediainfo' program for exporting metadata tags of MP3 files and giving them to 'opusenc' program for importing metadata tags to encoding opus files, also giving the bit-rate value of original MP3 files to 'opusenc' for encoding large size AIFF files in order to achieve the opus files with same bit-rate of original MP3 files, so I need a script for automation listed below operations:

1. Use sox for convert MP3 files in a directory with many sub-directory to the files with AIFF format with same name.

2. Use 'mediainfo' for exporting metadata tags (Album, Performer, Track name, Recorded date, Genre) and bit-rate value of original MP3 files.

3. Giving the previous step information to 'opusenc' (artist, title, album, date YYYY-MM-DD, genre)[1] and run it.

4. Delete MP3 and AIFF files after encode successfully done.

I want mentioned operations run consecutive on directories one by one.

My goal of this work is achieve to more freedom. Thank you very much for help and time that you devote to this work.

*: I choose AIFF format because it supports ID3v2 tags but when for test I convert a MP3 file contains metadata to 'AIFF' format with 'SoX' program and convert it to 'opus' with 'opusenc', result was the output opus file lacks metadata (don't known what is the problem exactly) also there was need to specify bit-rate value of MP3 file, so use of 'mediainfo' is necessary.

[1]: https://mf4.xiph.org/jenkins/view/opus/job/opus-tools/ws/man/opusenc.html
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Want To convert script in Linux format

I have scripts which I want to convert in Linux format. Note these scripts are in txt format.But I want to convert them in Linux, as DBA's will be using this script. Any command or utility which converts tht files in proper Linux format. Thanks in Adavce. Kunal (1 Reply)
Discussion started by: niceboykunal123
1 Replies

2. Shell Programming and Scripting

convert files into csv format using perl

Hi all perl gurus, I need your help to get the desired output in perl. I have a file which has text in it in the format Connection request start timestamp = 12/08/2008 00:58:36.956700 Connect request completion timestamp = 12/08/2008 00:58:36.959729 Application idle time ... (10 Replies)
Discussion started by: azs0309
10 Replies

3. Shell Programming and Scripting

Rename a lot of files using shells script

Hi This is the list file that i have : The files is more than this. I will rename one by one file become like this : So just change the time stamp 200906 become 200905. Is it possible using script ? Thanks (3 Replies)
Discussion started by: justbow
3 Replies

4. Shell Programming and Scripting

How to convert date format such as 7/18/2015 to the number of month

How to convert date format such as 7/18/2015 to the number of month from requesting date 'date' in sh scripting ? Let say I have output in my log.txt -> 7/18/2015. How I convert it to the full number of month starting from 'date' till 7/18/2015 in shell scripting ? Thanks in advance. (1 Reply)
Discussion started by: amerabest
1 Replies

5. Shell Programming and Scripting

Python script to convert date to iso format

Hi , This is my 1st program in python never tried any python before. i am trying to write a python script which reads a .tsv file line by line and in each line it should look for mm/dd/yyyy formate and convert it to yyyy-mm-dd formate . can some one provide be some sample code to do that. (2 Replies)
Discussion started by: vikatakavi
2 Replies

6. Shell Programming and Scripting

Sed/awk command to convert number occurances into date format and club a set of lines

Hi, I have been stuck in this requirement where my file contains the below format. 20150812170500846959990854-25383-8.0.0 "ABC Report" hp96880 "4952" 20150812170501846959990854-25383-8.0.0 End of run 20150812060132846959990854-20495-8.0.0 "XYZ Report" vg76452 "1006962188"... (6 Replies)
Discussion started by: Chinmaya Kabi
6 Replies

7. Shell Programming and Scripting

Convert a lot of files in subdirectories automatically

Hi, I have a huge structure of directories and subdirectories contsining some data. The lowest folders contain a file "image.png" which need to be converted to "folder.jpg". But how can I do that for all these files automatically? That's what I alredy have find /path -type f -name... (1 Reply)
Discussion started by: KarlKarpfen
1 Replies

8. Shell Programming and Scripting

Help need to convert bi-lingual files in sub-title format

I have a large number of files in the standard subtitle format with the additional proviso that the files are bi-lingual i.e. English and a second language: in this case Hindi. A small sample is given below: 00 04 07 08 00 04 11 00 I mean very high fever... He even vomited. 00 04 07 08 00... (6 Replies)
Discussion started by: gimley
6 Replies
MP3::Tag::ID3v1(3pm)					User Contributed Perl Documentation				      MP3::Tag::ID3v1(3pm)

NAME
MP3::Tag::ID3v1 - Module for reading / writing ID3v1 tags of MP3 audio files SYNOPSIS
MP3::Tag::ID3v1 is designed to be called from the MP3::Tag module. use MP3::Tag; $mp3 = MP3::Tag->new($filename); # read an existing tag $mp3->get_tags(); $id3v1 = $mp3->{ID3v1} if exists $mp3->{ID3v1}; # or create a new tag $id3v1 = $mp3->new_tag("ID3v1"); See MP3::Tag for information on the above used functions. * Reading the tag print " Title: " .$id3v1->title . " "; print " Artist: " .$id3v1->artist . " "; print " Album: " .$id3v1->album . " "; print "Comment: " .$id3v1->comment . " "; print " Year: " .$id3v1->year . " "; print " Genre: " .$id3v1->genre . " "; print " Track: " .$id3v1->track . " "; # or at once @tagdata = $mp3->all(); foreach $tag (@tagdata) { print $tag; } * Changing / Writing the tag $id3v1->comment("This is only a Test Tag"); $id3v1->title("testing"); $id3v1->artist("Artest"); $id3v1->album("Test it"); $id3v1->year("1965"); $id3v1->track("5"); $id3v1->genre("Blues"); # or at once $id3v1->all("song title","artist","album","1900","comment",10,"Ska"); $id3v1->write_tag(); * Removing the tag from the file $id3v1->remove_tag(); AUTHOR
Thomas Geffert, thg@users.sourceforge.net DESCRIPTION
title(), artist(), album(), year(), comment(), track(), genre() $artist = $id3v1->artist; $artist = $id3v1->artist($artist); $album = $id3v1->album; $album = $id3v1->album($album); $year = $id3v1->year; $year = $id3v1->year($year); $comment = $id3v1->comment; $comment = $id3v1->comment($comment); $track = $id3v1->track; $track = $id3v1->track($track); $genre = $id3v1->genre; $genre = $id3v1->genre($genre); Use these functions to retrieve the date of these fields, or to set the data. $genre can be a string with the name of the genre, or a number describing the genre. all() @tagdata = $id3v1->all; @tagdata = $id3v1->all($title, $artist, $album, $year, $comment, $track, $genre); Returns all information of the tag in a list. You can use this sub also to set the data of the complete tag. The order of the data is always title, artist, album, year, comment, track, and genre. genre has to be a string with the name of the genre, or a number identifying the genre. fits_tag() warn "data truncated" unless $id3v1->fits_tag($hash); Check whether the info in ID3v1 tag fits into the format of the file. as_bin() $str = $id3v1->as_bin(); Returns the ID3v1 tag as a string. write_tag() $id3v1->write_tag(); [old name: writeTag() . The old name is still available, but you should use the new name] Writes the ID3v1 tag to the file. remove_tag() $id3v1->remove_tag(); Removes the ID3v1 tag from the file. Returns negative on failure, FALSE if no tag was found. (Caveat: only one tag is removed; some - broken - files may have many chain-loaded one after another; you may need to call remove_tag() in a loop to handle such beasts.) [old name: removeTag() . The old name is still available, but you should use the new name] genres() @allgenres = $id3v1->genres; $genreName = $id3v1->genres($genreID); $genreID = $id3v1->genres($genreName); Returns a list of all genres, or the according name or id to a given id or name. new() $id3v1 = MP3::Tag::ID3v1->new($mp3fileobj[, $create]); Generally called from MP3::Tag, because a $mp3fileobj is needed. If $create is true, a new tag is created. Otherwise undef is returned, if now ID3v1 tag is found in the $mp3obj. Please use $mp3 = MP3::Tag->new($filename); $id3v1 = $mp3->new_tag("ID3v1"); # Empty new tag or $mp3 = MP3::Tag->new($filename); $mp3->get_tags(); $id3v1 = $mp3->{ID3v1}; # Existing tag (if present) instead of using this function directly SEE ALSO
MP3::Tag, MP3::Tag::ID3v2 ID3v1 standard - http://www.id3.org COPYRIGHT
Copyright (c) 2000-2004 Thomas Geffert. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License, distributed with Perl. perl v5.14.2 2009-11-28 MP3::Tag::ID3v1(3pm)
All times are GMT -4. The time now is 03:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy