Menggabungkan file Mp3 dan menyimpan indeks

0

Saya memiliki beberapa file Mp3:

0001.mp3
0002.mp3
........
9999.mp3

Setiap file memiliki ukuran / panjangnya sendiri yang berbeda dari yang lain.

Saya ingin menggabungkan mereka menjadi satu file Mp3. Pada saat yang sama menjaga file indeks (txt, xml ...) yang berisi di mana setiap file dimulai dalam file tunggal keluaran (BigOutput.mp3).

Sebagai contoh:

0001.mp3 starts at the 0        Byte of BigOutput.mp3
0002.mp3 starts at the 65874th  Byte of BigOutput.mp3
0003.mp3 starts at the 987485th Byte of BigOutput.mp3
and so on..

Apakah ada solusi / program yang diketahui dengan baik untuk tujuan ini atau saya harus menulis sendiri?

Humam Helfawi
sumber
Anda dapat menggunakan sesuatu seperti Mp3Wrap untuk 'menyatukan' MP3, tapi saya tidak yakin ATM cara mendapatkan output teks yang Anda inginkan. Jika Anda hanya menginginkan teks itu untuk memudahkan pemisahan file nanti, maka Mp3Wrap sangat cocok untuk Anda, karena itu dirancang dengan pemikiran dan Mp3splt mendukung pemisahan file Mp3Wrapped kembali ke set file aslinya.
3D1T0R

Jawaban:

0

Ini adalah solusi bash. Saya belum benar-benar menguji ini pada file nyata, tetapi harus bekerja. Anda baru saja membaca ukuran file melalui alat standar dan menambahkannya bersama-sama untuk mendapatkan indeks saat ini. File pertama ditangani sebagai kasus khusus.

Anda akan menyebutnya sebagai skrip dengan semua nama file yang disediakan sebagai argumen dalam urutan gabungan.

#!/bin/bash

idx=0
idx_txt="idx.txt"

echo "$1 starts at 0" >$idx_txt
shift

for file in "$@" ; do
  idx=$(( idx + $(ls -l|grep "$file"|awk '{print $5}') ))
  echo "$file starts at $idx" >>$idx_txt
done
T Nierath
sumber
Terima kasih banyak tetapi bukankah Mp3 memiliki header dan footer yang akan mengubah urutan byte yang sebenarnya?
Humam Helfawi
Saya berasumsi Anda benar-benar hanya catmenyatukan mereka karena itu tampaknya bekerja stackoverflow.com/questions/6222225/...
T Nierath