
Recherche avancée
Médias (1)
-
La conservation du net art au musée. Les stratégies à l’œuvre
26 mai 2011
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (29)
-
Soumettre bugs et patchs
10 avril 2011Un logiciel n’est malheureusement jamais parfait...
Si vous pensez avoir mis la main sur un bug, reportez le dans notre système de tickets en prenant bien soin de nous remonter certaines informations pertinentes : le type de navigateur et sa version exacte avec lequel vous avez l’anomalie ; une explication la plus précise possible du problème rencontré ; si possibles les étapes pour reproduire le problème ; un lien vers le site / la page en question ;
Si vous pensez avoir résolu vous même le bug (...) -
Installation en mode standalone
4 février 2011, parL’installation de la distribution MediaSPIP se fait en plusieurs étapes : la récupération des fichiers nécessaires. À ce moment là deux méthodes sont possibles : en installant l’archive ZIP contenant l’ensemble de la distribution ; via SVN en récupérant les sources de chaque modules séparément ; la préconfiguration ; l’installation définitive ;
[mediaspip_zip]Installation de l’archive ZIP de MediaSPIP
Ce mode d’installation est la méthode la plus simple afin d’installer l’ensemble de la distribution (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
Sur d’autres sites (7065)
-
Why does the new version of ffmpeg play non-interleaved http files so stuck ?
22 juillet 2020, par fredirty2017- 

-
I use MAC's AVAssetWriter/AVAssetWriterInput to generate MP4, then upload it to the website, and then use the latest version (ffmpeg4.2 or 4.3) of ffplay to play the file as https file on Windows, but I find it is very stuck. I use the old version of ffmpeg For example, the 3.4 version is normal. By analyzing the old and new ffmpeg source code, the general problem is basically located, but the deeper reason is still unclear.


-
The audio and video frames recorded by MAC are partially (within 3 seconds) non-interleaved


-
The latest version of Window's ffplay will continue to reconnect http to Seek
In the mov.c file, it is found that the number of AVIndexEntry created by the new and old versions ffmpeg is different, because the read buffer size is determined by the calculation of ff_configure_buffers_for_index : the buffer_size of the new version of AVIOContext is only the default 16k, so the pre-step of mov_read_packet avio_seek finds that the pos of the next frame is not within the 16k range, which leads to reconnecting to http and seeking to a new position ; while the AVIOContext.buffer_size of the old version of ffmpeg has a size of M Bytes level, it will not trigger reconnection of http.


-
Further analysis found that ff_configure_buffers_for_index will be calculated based on the relative maximum offset of the AVIndexEntry of each stream, because the new version skips the opportunity to adjust the buffer_size because the pos_delta is greater than 1<<24.


-
But I don’t know why the new version of AVIndexEntry has this situation. Do you know why the "new" version has made this change ? And how to make the player plays as smoothly as the old version ?


void ff_configure_buffers_for_index(AVFormatContext *s, int64_t time_tolerance)
 {
 int ist1, ist2;
 int64_t pos_delta = 0;
 int64_t skip = 0;
 //We could use URLProtocol flags here but as many user applications do not use URLProtocols this would be unreliable
 const char *proto = avio_find_protocol_name(s->filename);

 if (!proto) {
 av_log(s, AV_LOG_INFO,
 "Protocol name not provided, cannot determine if input is local or "
 "a network protocol, buffers and access patterns cannot be configured "
 "optimally without knowing the protocol\n");
 }

 if (proto && !(strcmp(proto, "file") && strcmp(proto, "pipe") && strcmp(proto, "cache")))
 return;

 for (ist1 = 0; ist1 < s->nb_streams; ist1++) {
 AVStream *st1 = s->streams[ist1];
 for (ist2 = 0; ist2 < s->nb_streams; ist2++) {
 AVStream *st2 = s->streams[ist2];
 int i1, i2;

 if (ist1 == ist2)
 continue;

 for (i1 = i2 = 0; i1 < st1->nb_index_entries; i1++) {
 AVIndexEntry *e1 = &st1->index_entries[i1];
 int64_t e1_pts = av_rescale_q(e1->timestamp, st1->time_base, AV_TIME_BASE_Q);

 skip = FFMAX(skip, e1->size);
 for (; i2 < st2->nb_index_entries; i2++) {
 AVIndexEntry *e2 = &st2->index_entries[i2];
 int64_t e2_pts = av_rescale_q(e2->timestamp, st2->time_base, AV_TIME_BASE_Q);
 if (e2_pts - e1_pts < time_tolerance)
 continue;
 pos_delta = FFMAX(pos_delta, e1->pos - e2->pos);
 av_log(s, AV_LOG_VERBOSE, "ff_configure_buffers_for_index [%d, %d] (%"PRId64", %"PRId64"): %"PRId64"\n", i1, i2, e1_pts, e2_pts, pos_delta);
 break;
 }
 }
 }
 }

 pos_delta *= 2;
 /* XXX This could be adjusted depending on protocol*/
 if (s->pb->buffer_size < pos_delta && pos_delta < (1<<24)) {
 av_log(s, AV_LOG_VERBOSE, "Reconfiguring buffers to size %"PRId64"\n", pos_delta);
 ffio_set_buf_size(s->pb, pos_delta);
 s->pb->short_seek_threshold = FFMAX(s->pb->short_seek_threshold, pos_delta/2);
 }

 if (skip < (1<<23)) {
 s->pb->short_seek_threshold = FFMAX(s->pb->short_seek_threshold, skip);
 }
 }















-
-
How to programmatically read an audio RTP stream using javacv and ffmpeg ?
21 mai 2019, par ChrisI am trying to read an audio RTP stream coming from ffmpeg in command line using javaCV. I create a DatagramSocket that listens to a specified port but can’t get the audio frames.
I have tried with different types of buffer to play the audio to my speakers but I am getting a lot of "Invalid return value 0 for stream protocol" error messages with no audio in my speakers.
I am running the following command to stream an audio file :
ffmpeg -re -i /some/file.wav -ar 44100 -f mulaw -f rtp rtp ://127.0.0.1:7780
And an excerpt of my code so far :
public class FrameGrabber implements Runnable
private static final TimeUnit SECONDS = TimeUnit.SECONDS;
private InetAddress ipAddress;
private DatagramSocket serverSocket;
public FrameGrabber(Integer port) throws UnknownHostException, SocketException {
super();
this.ipAddress = InetAddress.getByName("192.168.44.18");
serverSocket = new DatagramSocket(port, ipAddress);
}
public AudioFormat getAudioFormat() {
float sampleRate = 44100.0F;
// 8000,11025,16000,22050,44100
int sampleSizeInBits = 16;
// 8,16
int channels = 1;
// 1,2
boolean signed = true;
// true,false
boolean bigEndian = false;
// true,false
return new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
}
@Override
public void run() {
byte[] buffer = new byte[2048];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(packet.getData(), packet.getOffset(), packet.getLength()));
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(dis);
grabber.setFormat("mulaw");
grabber.setSampleRate((int) getAudioFormat().getSampleRate());
grabber.setAudioChannels(getAudioFormat().getChannels());
SourceDataLine soundLine = null;
try {
grabber.start();
if (grabber.getSampleRate() > 0 && grabber.getAudioChannels() > 0) {
AudioFormat audioFormat = new AudioFormat(grabber.getSampleRate(), 16, grabber.getAudioChannels(), true, true);
DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
soundLine = (SourceDataLine) AudioSystem.getLine(info);
soundLine.open(audioFormat);
soundLine.start();
}
ExecutorService executor = Executors.newSingleThreadExecutor();
while (true) {
try {
serverSocket.receive(packet);
} catch (IOException e) {
e.printStackTrace();
}
Frame frame = grabber.grab();
//if (frame == null) break;
if (frame != null && frame.samples != null) {
ShortBuffer channelSamplesFloatBuffer = (ShortBuffer) frame.samples[0];
channelSamplesFloatBuffer.rewind();
ByteBuffer outBuffer = ByteBuffer.allocate(channelSamplesFloatBuffer.capacity() * 2);
float[] samples = new float[channelSamplesFloatBuffer.capacity()];
for (int i = 0; i < channelSamplesFloatBuffer.capacity(); i++) {
short val = channelSamplesFloatBuffer.get(i);
outBuffer.putShort(val);
}
if (soundLine == null) return;
try {
SourceDataLine finalSoundLine = soundLine;
executor.submit(() -> {
finalSoundLine.write(outBuffer.array(), 0, outBuffer.capacity());
outBuffer.clear();
}).get();
} catch (InterruptedException interruptedException) {
Thread.currentThread().interrupt();
}
}
}
/*
executor.shutdownNow();
executor.awaitTermination(1, SECONDS);
if (soundLine != null) {
soundLine.stop();
}
grabber.stop();
grabber.release();*/
} catch (ExecutionException ex) {
System.out.println("ExecutionException");
ex.printStackTrace();
} catch (org.bytedeco.javacv.FrameGrabber.Exception ex) {
System.out.println("FrameGrabberException");
ex.printStackTrace();
} catch (LineUnavailableException ex) {
System.out.println("LineUnavailableException");
ex.printStackTrace();
}/* catch (InterruptedException e) {
System.out.println("InterruptedException");
e.printStackTrace();
}*/
}
public static void main(String[] args) throws SocketException, UnknownHostException {
Runnable apRunnable = new FrameGrabber(7780);
Thread ap = new Thread(apRunnable);
ap.start();
}At this stage, I am trying to play the audio file in my speakers but I am getting the following logs :
Task :FrameGrabber.main()
Invalid return value 0 for stream protocol
Invalid return value 0 for stream protocol
Input #0, mulaw, from ’java.io.DataInputStream@474e6cea’ :
Duration : N/A, bitrate : 352 kb/s
Stream #0:0 : Audio : pcm_mulaw, 44100 Hz, 1 channels, s16, 352 kb/s
Invalid return value 0 for stream protocol
Invalid return value 0 for stream protocol
Invalid return value 0 for stream protocol
Invalid return value 0 for stream protocol
...What am I doing wrong ?
Thanks in advance !
-
i use vitamio-ffmpeg achieve filters function,who can help me to see [on hold]
30 décembre 2015, par 陈腾明my cmd is :
ffmpeg -y -i /storage/emulated/0/Foream/a.mp4 -i /storage/emulated/0/Foream/q.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy /storage/test.mp4-
ffmpeg version 2.0 Copyright (c) 2000-2013 the FFmpeg developers
built on Dec 30 2015 17:40:40 with gcc 4.8 (GCC)
configuration: --arch=arm --disable-runtime-cpudetect --target-os=linux --enable-cross-compile --cross-prefix=arm-linux-androideabi- --enable-version3 --enable-optimizations --enable-shared --disable-fast-unaligned --disable-static --disable-symver --disable-programs --disable-doc --disable-avdevice --disable-postproc --disable-encoders --disable-muxers --enable-muxer=mp4 --disable-devices --disable-demuxer=sbg --disable-demuxer=dts --disable-parser=dca --disable-decoder=dca --disable-decoder=svq3 --disable-debug --enable-network --enable-asm --prefix=/var/vitamio/FFmpeg-Vitamio-vitamio/build/android/armv6 --extra-cflags='-mthumb -std=c99 -O3 -Wall -pipe -fpic -fasm -finline-limit=300 -ffast-math -fstrict-aliasing -Werror=strict-aliasing -Wno-psabi -Wa,--noexecstack -fdiagnostics-color=always -DANDROID -DNDEBUG -I/var/openssl/OpenSSL-Vitamio-master/include -D__ARM_ARCH_5__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__ -march=armv6 -msoft-float' --extra-ldflags='-lm -lz -Wl,--no-undefined -Wl,-z,no WARNING: library configuration mismatch
avutil configuration: --arch=arm --disable-runtime-cpudetect --target-os=linux --cross-prefix=arm-linux-androideabi- --enable-cross-compile --enable-version3 --enable-shared --disable-static --disable-symver --disable-programs --disable-doc --disable-avdevice --disable-encoders --disable-muxers --disable-devices --disable-everything --disable-protocols --disable-demuxers --disable-decoders --disable-bsfs --disable-debug --enable-optimizations --enable-filters --enable-parsers --disable-parser=hevc --enable-swscale --enable-network --enable-protocol=file --enable-protocol=http --enable-protocol=rtmp --enable-protocol=rtp --enable-protocol=mmst --enable-protocol=mmsh --enable-protocol=crypto --enable-protocol=hls --enable-demuxer=hls --enable-demuxer=mpegts --enable-demuxer=mpegtsraw --enable-demuxer=mpegvideo --enable-demuxer=concat --enable-demuxer=mov --enable-demuxer=flv --enable-demuxer=rtsp --enable-demuxer=mp3 --enable-demuxer=matroska --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-de avcodec configuration: --arch=arm --disable-runtime-cpudetect—target-os=linux —cross-prefix=arm-linux-androideabi- —enable-cross-compile —enable-version3 —enable-shared —disable-static —disable-symver —disable-programs —disable-doc —disable-avdevice —disable-encoders —disable-muxers —disable-devices —disable-everything —disable-protocols —disable-demuxers —disable-decoders —disable-bsfs —disable-debug —enable-optimizations —enable-filters —enable-parsers —disable-parser=hevc —enable-swscale —enable-network —enable-protocol=file —enable-protocol=http —enable-protocol=rtmp —enable-protocol=rtp —enable-protocol=mmst —enable-protocol=mmsh —enable-protocol=crypto —enable-protocol=hls —enable-demuxer=hls —enable-demuxer=mpegts —enable-demuxer=mpegtsraw —enable-demuxer=mpegvideo —enable-demuxer=concat —enable-demuxer=mov —enable-demuxer=flv —enable-demuxer=rtsp —enable-demuxer=mp3 —enable-demuxer=matroska —enable-decoder=mpeg4 —enable-decoder=mpegvideo —enable-de avformat configuration : —arch=arm —disable-runtime-cpudetect
— target-os=linux —cross-prefix=arm-linux-androideabi- —enable-cross-compile —enable-version3 —enable-shared —disable-static —disable-symver —disable-programs —disable-doc —disable-avdevice —disable-encoders —disable-muxers —disable-devices —disable-everything —disable-protocols —disable-demuxers —disable-decoders —disable-bsfs —disable-debug —enable-optimizations —enable-filters —enable-parsers —disable-parser=hevc —enable-swscale —enable-network —enable-protocol=file —enable-protocol=http —enable-protocol=rtmp —enable-protocol=rtp —enable-protocol=mmst —enable-protocol=mmsh —enable-protocol=crypto —enable-protocol=hls —enable-demuxer=hls —enable-demuxer=mpegts —enable-demuxer=mpegtsraw —enable-demuxer=mpegvideo —enable-demuxer=concat —enable-demuxer=mov —enable-demuxer=flv —enable-demuxer=rtsp —enable-demuxer=mp3 —enable-demuxer=matroska —enable-decoder=mpeg4 —enable-decoder=mpegvideo —enable-de avfilter configuration : —arch=arm —disable-runtime-cpudetect
— target-os=linux —cross-prefix=arm-linux-androideabi- —enable-cross-compile —enable-version3 —enable-shared —disable-static —disable-symver —disable-programs —disable-doc —disable-avdevice —disable-encoders —disable-muxers —disable-devices —disable-everything —disable-protocols —disable-demuxers —disable-decoders —disable-bsfs —disable-debug —enable-optimizations —enable-filters —enable-parsers —disable-parser=hevc —enable-swscale —enable-network —enable-protocol=file —enable-protocol=http —enable-protocol=rtmp —enable-protocol=rtp —enable-protocol=mmst —enable-protocol=mmsh —enable-protocol=crypto —enable-protocol=hls —enable-demuxer=hls —enable-demuxer=mpegts —enable-demuxer=mpegtsraw —enable-demuxer=mpegvideo —enable-demuxer=concat —enable-demuxer=mov —enable-demuxer=flv —enable-demuxer=rtsp —enable-demuxer=mp3 —enable-demuxer=matroska —enable-decoder=mpeg4 —enable-decoder=mpegvideo —enable-de swscale configuration : —arch=arm —disable-runtime-cpudetect
— target-os=linux —cross-prefix=arm-linux-androideabi- —enable-cross-compile —enable-version3 —enable-shared —disable-static —disable-symver —disable-programs —disable-doc —disable-avdevice —disable-encoders —disable-muxers —disable-devices —disable-everything —disable-protocols —disable-demuxers —disable-decoders —disable-bsfs —disable-debug —enable-optimizations —enable-filters —enable-parsers —disable-parser=hevc —enable-swscale —enable-network —enable-protocol=file —enable-protocol=http —enable-protocol=rtmp —enable-protocol=rtp —enable-protocol=mmst —enable-protocol=mmsh —enable-protocol=crypto —enable-protocol=hls —enable-demuxer=hls —enable-demuxer=mpegts —enable-demuxer=mpegtsraw —enable-demuxer=mpegvideo —enable-demuxer=concat —enable-demuxer=mov —enable-demuxer=flv —enable-demuxer=rtsp —enable-demuxer=mp3 —enable-demuxer=matroska —enable-decoder=mpeg4 —enable-decoder=mpegvideo —enable-de swresample configuration : —arch=arm —disable-runtime-cpudetect
— target-os=linux —cross-prefix=arm-linux-androideabi- —enable-cross-compile —enable-version3 —enable-shared —disable-static —disable-symver —disable-programs —disable-doc —disable-avdevice —disable-encoders —disable-muxers —disable-devices —disable-everything —disable-protocols —disable-demuxers —disable-decoders —disable-bsfs —disable-debug —enable-optimizations —enable-filters —enable-parsers —disable-parser=hevc —enable-swscale —enable-network —enable-protocol=file —enable-protocol=http —enable-protocol=rtmp —enable-protocol=rtp —enable-protocol=mmst —enable-protocol=mmsh —enable-protocol=crypto —enable-protocol=hls —enable-demuxer=hls —enable-demuxer=mpegts —enable-demuxer=mpegtsraw —enable-demuxer=mpegvideo —enable-demuxer=concat —enable-demuxer=mov —enable-demuxer=flv —enable-demuxer=rtsp —enable-demuxer=mp3 —enable-demuxer=matroska —enable-decoder=mpeg4 —enable-decoder=mpegvideo —enable-de libavutil 52. 48.100 / 52. 48.100
libavcodec 55. 39.100 / 55. 39.100
libavformat 55. 19.104 / 55. 19.104
libavfilter 3. 90.100 / 3. 90.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
Splitting the commandline.
Reading option ’-y’ ... matched as option ’y’ (overwrite output files) with argument ’1’.
Reading option ’-i’ ... matched as input file with argument ’/storage/emulated/0/Foream/a.mp4’.
Reading option ’-i’ ... matched as input file with argument ’/storage/emulated/0/Foream/q.jpg’.
Reading option ’-filter_complex’ ... matched as option ’filter_complex’ (create a complex filtergraph) with argument
’[0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out]’.
Reading option ’-map’ ... matched as option ’map’ (set input stream mapping) with argument ’[out]’.
Reading option ’-map’ ... matched as option ’map’ (set input stream mapping) with argument ’0:a’.
Reading option ’-codec:a’ ... matched as option ’codec’ (codec name) with argument ’copy’.
Reading option ’/storage/emulated/0/Foream/test.mp4’ ... matched as output file.
Finished splitting the commandline.
Parsing a group of options : global .
Applying option y (overwrite output files) with argument 1.
Applying option filter_complex (create a complex filtergraph) with argument
[0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out].
Successfully parsed a group of options.
Parsing a group of options : input file /storage/emulated/0/Foream/a.mp4.
Successfully parsed a group of options.
Opening an input file : /storage/emulated/0/Foream/a.mp4.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb9270990] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb9270990] ISO : File Type Major Brand : mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb9270990] File position before avformat_find_stream_info() is 810040
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb9270990] All info found
rfps : 29.416667 0.016512
rfps : 29.416667 0.016512
rfps : 29.500000 0.012847
rfps : 29.500000 0.012847
rfps : 29.583333 0.009693
rfps : 29.666667 0.007050
rfps : 29.750000 0.004918
rfps : 29.833333 0.003298
rfps : 29.916667 0.002188
rfps : 30.000000 0.001590
rfps : 30.083333 0.001503
rfps : 30.166667 0.001928
rfps : 30.250000 0.002863
rfps : 30.333333 0.004310
rfps : 30.333333 0.004310
rfps : 30.416667 0.006268
rfps : 30.416667 0.006268
rfps : 30.500000 0.008737
rfps : 30.500000 0.008737
rfps : 30.583333 0.011717
rfps : 30.583333 0.011717
rfps : 30.666667 0.015208
rfps : 30.666667 0.015208
rfps : 30.750000 0.019211
rfps : 30.750000 0.019211
rfps : 59.500000 0.019673
rfps : 59.583333 0.016176
rfps : 59.666667 0.013191
rfps : 59.750000 0.010716
rfps : 59.833333 0.008753
rfps : 59.916667 0.007302
rfps : 60.000000 0.006361
rfps : 29.970030 0.001747
rfps : 59.940060 0.006986
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb9270990] File position after avformat_find_stream_info() is 1684954
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ’/storage/emulated/0/Foream/a.mp4’ :
Metadata :
major_brand : mp42minor_version : 0
compatible_brands: isommp42
creation_time : 2015-11-07 12:30:11
location : +22.5935+113.8685/
location-eng : +22.5935+113.8685/
Duration: 00:00:17.24 , start:0.000000 , bitrate : 9934 kb/s
Stream #0:0 (eng) , 21, 1/90000 : Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1280x720, 9488 kb/s , SAR
65536:65536 DAR 16:9 , 29.61 fps , 30.08 tbr , 90k tbn , 50 tbc
(default)Metadata:
rotate : 90
creation_time : 2015-11-07 12:30:11
handler_name : VideoHandle
Stream #0:1 (eng) , 49, 1/48000 : Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)
Metadata:
creation_time : 2015-11-07 12:30:11
handler_name : SoundHandle
Successfully opened the file.
Parsing a group of options: input file /storage/emulated/0/Foream/q.jpg.
Successfully parsed a group of options.
Opening an input file: /storage/emulated/0/Foream/q.jpg.
[mp3 @ 0xb924f040] Format mp3 detected only with low score of 1, misdetection possible!
[mp3 @ 0xb924f040] File position before avformat_find_stream_info() is 0
[mp3 @ 0xb9216ef0] Header missing
[mp3 @ 0xb9216ef0] Header missing
[mp3 @ 0xb9216ef0] Header missing
[mp3 @ 0xb924f040] decoding for stream 0 failed
[mp3 @ 0xb924f040] Could not find codec parameters for stream 0 (Audio: mp1, 0 channels, s16p): unspecified frame size Considerincreasing the value for the ’analyzeduration’ and ’probesize’
options
[mp3 @ 0xb924f040] File position after avformat_find_stream_info() is 9590
/storage/emulated/0/Foream/q.jpg : could not find codec parameters
[AVIOContext @ 0xb9251990] Statistics : 9590 bytes read, 0 seeks
[AVIOContext @ 0xb923e090] Statistics : 907698 bytes read, 1 seeks
-