
Recherche avancée
Autres articles (37)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
-
L’utiliser, en parler, le critiquer
10 avril 2011La première attitude à adopter est d’en parler, soit directement avec les personnes impliquées dans son développement, soit autour de vous pour convaincre de nouvelles personnes à l’utiliser.
Plus la communauté sera nombreuse et plus les évolutions seront rapides ...
Une liste de discussion est disponible pour tout échange entre utilisateurs.
Sur d’autres sites (7076)
-
ffmpeg or ffprobe extracting realtime
18 avril 2014, par wxJunkieI have TB's of AV and DV files. I want to run a script that will enable me to find the real start time + end time AND the navigation (latitude & longitude) that is embedded in the audio of each of the clips that I have and export the list perhaps to a .txt or .doc list. I use a SMPTE reader now that can read the time that is embedded in the video, so there has to be a script that will pull those certain criteria's out ?
I have ran several codes in the past that has given me :
duration : 00:01:23.83 start : 0.0000000, bitrate 28771 kb/s etc.
I always get 'start : 0.0000000' for each clip and I need the real start time of each clip.Is this possible ?
-
Issues in executing FFmpeg command in Java code in Linux
12 août 2017, par Tina JI have problems executing this
ffmpeg
command in my java code :ffmpeg -i sample.mp4 -i ad.mp4 -filter_complex "[0:v]trim=0:15,setpts=PTS-STARTPTS[v0]; [1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; [0:v]trim=20:30,setpts=PTS-STARTPTS[v2]; [v0][v1][v2]concat=n=3:v=1:a=0[out]" -map "[out]" output.mp4
I used the
getRuntime()
method below, but that doesn’t work for me. Even if I simply remove the"
, still it doesn’t work. When I simply copy-paste the equivalent string in terminal, it works.String c1=" -i "+dir+"sample.mp4 "+"-i "+dir+"ad.mp4 -filter_complex [0:v]trim=0:15,setpts=PTS-STARTPTS[v0]; [1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; [0:v]trim=20:30,setpts=PTS-STARTPTS[v2]; [v0][v1][v2]concat=n=3:v=1:a=0[out] -map [out] "+dir+"output.mp4";
RunCommand("ffmpeg"+c1);Using this method :
private static void RunCommand(String command) throws InterruptedException {
try {
// Execute command
Process proc = Runtime.getRuntime().exec(command);
System.out.println(proc.exitValue());
// Get output stream to write from it
// Read the output
BufferedReader reader =
new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = "";
while((line = reader.readLine()) != null) {
System.out.print(line + "\n");
// System.out.println(ads.get(0));
}
proc.waitFor();
} catch (IOException e) {
}
}This one doesn’t work also, and printing the exit value shows this :
Exception in thread "main" java.lang.IllegalThreadStateException: process hasn't exited
at java.lang.UNIXProcess.exitValue(UNIXProcess.java:423)
at parser.Parser.RunCommand(Parser.java:106)
at parser.Parser.commandGenerator2(Parser.java:79)
at parser.Parser.main(Parser.java:44)If I move the
proc.waitFor();
before printing the exit value, it is1
.What is the problem ? Why it doesn’t run in Java code ?
-
wrong play audio samples
8 août 2014, par Ivan LisovichI have a problem with a ffmpeg and NAudio libs.
I worked with the old ffmpeg library and there the audio plays correctly.
read video in manage c++// Read frames and save to list audio frames
while(av_read_frame(pFormatCtx, &packet) >= 0)
{
if(packet.stream_index == videoStream)
{
// reade image
}
else if(packet.stream_index == audioStream)
{
int b = av_dup_packet(&packet);
if(b >= 0) {
int audio_pkt_size = packet.size;
libffmpeg::uint8_t* audio_pkt_data = packet.data;
while(audio_pkt_size > 0)
{
int got_frame = 0;
int len1 = libffmpeg::avcodec_decode_audio4(aCodecCtx, &frame, &got_frame, &packet);
if(len1 < 0)
{
/* if error, skip frame */
audio_pkt_size = 0;
break;
}
audio_pkt_data += len1;
audio_pkt_size -= len1;
if (got_frame)
{
int data_size = libffmpeg::av_samples_get_buffer_size ( NULL, aCodecCtx->channels, frame.nb_samples, aCodecCtx->sample_fmt, 1 );
array<byte>^ managedBuf = gcnew array<byte>(data_size);
System::IntPtr iptr = System::IntPtr( frame.data[0] );
System::Runtime::InteropServices::Marshal::Copy( iptr, managedBuf, 0, data_size );
audioData->Add(managedBuf);
}
}
}
}
// Free the packet that was allocated by av_read_frame
libffmpeg::av_free_packet(&packet);
}
</byte></byte>I return audioData to c# code and play in NAudio library
play in c#var recordingFormat = new WaveFormat(reader.SampleRate, 16, reader.Channels);
var waveProvider = new BufferedWaveProvider(recordingFormat) { DiscardOnBufferOverflow = true, BufferDuration = TimeSpan.FromMilliseconds(10000) };
var waveOut = new DirectSoundOut();
waveOut.Init(waveProvider);
waveOut.Play();
foreach (byte[] data in audioData)
{
waveProvider.AddSamples(data, 0, data.Length);
}but audio not playing.
what am I doing wrong ?