
Recherche avancée
Médias (1)
-
Sintel MP4 Surround 5.1 Full
13 mai 2011, par
Mis à jour : Février 2012
Langue : English
Type : Video
Autres articles (79)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)
Sur d’autres sites (5227)
-
Anomalie #4466 : Choisir statut sans chichis
29 mars 2020Doublons de #4182, non ?
-
A Quick Start Guide to the Payment Services Directive (PSD2)
22 novembre 2024, par Daniel Crough — Banking and Financial Services, Privacy -
MOOV atom is not being written to the output.
18 juillet 2014, par AnilJI am facing a problem where a MOOV atom is not written to the end of the file, and the file is not playable by the vlc player. Also, FFmpeg command gives me the following error.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x2334ba0] moov atom not found
queueout/1000_wrecord.mp4: Invalid data found when processing inputIn my design, I am using an object of DataChunkQueue class to initialize the IContainer object, where it writes into this queue when it calls IContainer.WritePacket(packet) method. Finally when the recording is complete, I am flushing out this queue into a file. However, when I try to play the file, above error is thrown. When I test with the FLV file type however, I am able to playout the file correctly.
I am not sure what is the issue with the MP4 file and why it does not write the MOOV item to the end. Can anyone offer me an suggestions as to how this can be resolved ?
I am pasting below some of the code snippets for reference.
public class DataChunkQueue implements ByteChannel {
private ConcurrentLinkedQueue<datachunk> mChunkQueue = null;
private static String BASE_PATH = null;
private static String mOutputFileName = null;
private FileChannel mOutputFileChannel = null;
// constructor
public DataChunkQueue() {
mChunkQueue = new ConcurrentLinkedQueue<datachunk>();
}
@Override
public void close() throws IOException {
return;
}
@Override
public boolean isOpen() {
return true;
}
@Override
public int write(ByteBuffer buffer) throws IOException {
DataChunk vChunk = new DataChunk(buffer);
mChunkQueue.add(vChunk);
return 0;
}
public int read(ByteBuffer buffer) throws IOException {
int result = 0;
buffer = mChunkQueue.poll().GetBuffer();
if (buffer != null ) {
result = 0;
} else {
result = 1;
}
return result;
}
}
private boolean InitStreamEncoder() {
DataChunkQueue mOutQueue = null;
// Change this to change the frame rate you record at
mFrameRate = IRational.make(Constants.FRAME_RATE, 1);
// try opening a container format
mOutFormat = IContainerFormat.make();
mOutFormat.setOutputFormat(mRecordFormat, null, null);
// Initialize the output container.
mOutputContainer = IContainer.make();
int retval = mOutputContainer.open(mOutQueue, IContainer.Type.WRITE, mOutFormat);
if (retval < 0)
throw new RuntimeException("could not open data output stream buffer");
// Guess the Encoding CODEC based on the type of input file.
ICodec videoCodec = ICodec.guessEncodingCodec(null, null, ("out." + mRecordFormat), null, ICodec.Type.CODEC_TYPE_VIDEO);
if (videoCodec == null)
throw new RuntimeException("could not guess a codec");
// Initialize the encoding parameters.
mOutStream = mOutputContainer.addNewStream(videoCodec);
mOutStreamCoder = mOutStream.getStreamCoder();
mOutStreamCoder.setNumPicturesInGroupOfPictures(Constants.GOP);
mOutStreamCoder.setCodec(videoCodec);
//mOutStreamCoder.setBitRate(Constants.BITRATE);
//mOutStreamCoder.setBitRateTolerance(Constants.TOLERANCE);
mOutStreamCoder.setPixelType(IPixelFormat.Type.YUV420P);
mOutStreamCoder.setWidth(Constants.MAIN_SCREEN_WIDTH);
mOutStreamCoder.setHeight(Constants.MAIN_SCREEN_HEIGHT);
//mOutStreamCoder.setFlag(IStreamCoder.Flags.FLAG_QSCALE, true);
//mOutStreamCoder.setGlobalQuality(0);
mOutStreamCoder.setFrameRate(mFrameRate);
mOutStreamCoder.setTimeBase(IRational.make(mFrameRate.getDenominator(), mFrameRate.getNumerator()));
retval = mOutStreamCoder.open(null, null);
if (retval < 0) {
System.out.println("could not open input decoder");
return false;
}
retval = mOutputContainer.writeHeader();
if (retval < 0) {
System.out.println("could not write file header");
return false;
}
return true;
}
</datachunk></datachunk>This function is called at the very end to write the trailer.
public void Cleanup() {
if (mOutputContainer != null) {
mOutputContainer.flushPackets();
mOutputContainer.writeTrailer();
mOutputContainer.close();
}
if (mOutStreamCoder != null) {
mOutStreamCoder.close();
mOutStreamCoder = null;
}
}