
Recherche avancée
Médias (1)
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (112)
-
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (11926)
-
MAINTAINERS : add myself to the general developers list
26 avril 2020, par Limin Wang -
How to save/encode recorded raw PCM Data as AAC/MP4 format file in Android
28 janvier 2015, par INVISIBLEi want to save recorder pcm data as aac/mp4 format file.
i am using AudioRecord class for recording audio in android. i have success fully saved it as wave file by adding a wave header to raw data. but dont know how to save it as aac/mp4 file, because aac/mp4 format is compressed then wave.
the methods i am using for saving pcm data as wave is pasted below.recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
SavedSampleRate, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING,
bufferSize);
recorder.startRecording();
isRecording = true;
isRecording = true;
recordingThread = new Thread(new Runnable() {
@Override
public void run() {
writeAudioDataToFile();
}
}, "AudioRecorder Thread");
recordingThread.start();second
private void writeAudioDataToFile() {
byte data[] = new byte[bufferSize];
// short sData[] = new short[bufferSize];
String filename = getTempFilename();
FileOutputStream os = null;
try {
os = new FileOutputStream(filename);
} catch (Exception e) {
e.printStackTrace();
}
int read = 0;
if (null != os) {
while (isRecording) {
double sum = 0;
read = recorder.read(data, 0, bufferSize);
if (AudioRecord.ERROR_INVALID_OPERATION != read) {
try {
synchronized (this) {
// Necessary in order to convert negative shorts!
final int USHORT_MASK = (1 << 16) - 1;
final ByteBuffer buf = ByteBuffer.wrap(data).order(
ByteOrder.LITTLE_ENDIAN);
final ByteBuffer newBuf = ByteBuffer.allocate(
data.length).order(ByteOrder.LITTLE_ENDIAN);
int sample;
while (buf.hasRemaining()) {
short shortSample = buf.getShort();
sample = (int) shortSample & USHORT_MASK;
sample = sample * db_value_global;
sample = mRmsFilterSetting.filter
.apply((((int) 0) | shortSample)
* db_value_global);
newBuf.putShort((short) sample);
}
data = newBuf.array();
os.write(data);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
try {
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}and finally saving it as
private void copyWaveFile(ArrayList<string> inFilename, String outFilename) {
FileInputStream[] in = null;
FileOutputStream out = null;
long totalAudioLen = 0;
long totalDataLen = totalAudioLen + 36;
long longSampleRate = SavedSampleRate;
int channels = 2;
long byteRate = RECORDER_BPP * SavedSampleRate * channels / 8;
byte[] data = new byte[bufferSize];
try {
out = new FileOutputStream(outFilename);
in = new FileInputStream[inFilename.size()];
for (int i = 0; i < in.length; i++) {
in[i] = new FileInputStream(inFilename.get(i));
totalAudioLen += in[i].getChannel().size();
}
totalDataLen = totalAudioLen + 36;
WriteWaveFileHeader(out, totalAudioLen, totalDataLen,
longSampleRate, channels, byteRate);
for (int i = 0; i < in.length; i++) {
while (in[i].read(data) != -1) {
out.write(data);
}
in[i].close();
}
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private void WriteWaveFileHeader(FileOutputStream out, long totalAudioLen,
long totalDataLen, long longSampleRate, int channels, long byteRate)
throws IOException {
byte[] header = new byte[44];
header[0] = 'R'; // RIFF/WAVE header
header[1] = 'I';
header[2] = 'F';
header[3] = 'F';
header[4] = (byte) (totalDataLen & 0xff);
header[5] = (byte) ((totalDataLen >> 8) & 0xff);
header[6] = (byte) ((totalDataLen >> 16) & 0xff);
header[7] = (byte) ((totalDataLen >> 24) & 0xff);
header[8] = 'W';
header[9] = 'A';
header[10] = 'V';
header[11] = 'E';
header[12] = 'f'; // 'fmt ' chunk
header[13] = 'm';
header[14] = 't';
header[15] = ' ';
header[16] = 16; // 4 bytes: size of 'fmt ' chunk
header[17] = 0;
header[18] = 0;
header[19] = 0;
header[20] = 1; // format = 1
header[21] = 0;
header[22] = (byte) channels;
header[23] = 0;
header[24] = (byte) (longSampleRate & 0xff);
header[25] = (byte) ((longSampleRate >> 8) & 0xff);
header[26] = (byte) ((longSampleRate >> 16) & 0xff);
header[27] = (byte) ((longSampleRate >> 24) & 0xff);
header[28] = (byte) (byteRate & 0xff);
header[29] = (byte) ((byteRate >> 8) & 0xff);
header[30] = (byte) ((byteRate >> 16) & 0xff);
header[31] = (byte) ((byteRate >> 24) & 0xff);
header[32] = (byte) (2 * 16 / 8); // block align
header[33] = 0;
header[34] = RECORDER_BPP; // bits per sample
header[35] = 0;
header[36] = 'd';
header[37] = 'a';
header[38] = 't';
header[39] = 'a';
header[40] = (byte) (totalAudioLen & 0xff);
header[41] = (byte) ((totalAudioLen >> 8) & 0xff);
header[42] = (byte) ((totalAudioLen >> 16) & 0xff);
header[43] = (byte) ((totalAudioLen >> 24) & 0xff);
out.write(header, 0, 44);
}
</string>in this piece of code i am recording small PCM files with AudioRecord and saving them as wave file by adding wave header.
is there any step by step tutorial for how to save pcm data as mp4/aac file.
thanks in advance.
-
Révision 18876 : spip3beta dans archives
3 janvier 2012, par Ben .