
Recherche avancée
Autres articles (55)
-
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...) -
Selection of projects using MediaSPIP
2 mai 2011, parThe examples below are representative elements of MediaSPIP specific uses for specific projects.
MediaSPIP farm @ Infini
The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...) -
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users.
Sur d’autres sites (5664)
-
Decoding pcm_s16le with FFMPEG ?
31 juillet 2015, par Davide Caresiai have a problem decoding a wav file using ffmpeg. I’m new to it and i’m not quite used to it.
In my application i have to input the audio file and get an array of samples to work on.
I used ffmpeg to create a function that gets in input the path of the file, the position in time where to start to output the samples and the lenght of the chunk to decode in seconds.I have no reputation, so I had to make a gdrive directory where you can see the problem and the files on which I worked.
Here it is : https://goo.gl/8KnjAj
When I try to decode the file harp.wav everything runs fine, and I can plot the samples as in the image plot-harp.png
The file is a WAV file encoded as : pcm_u8, 11025 Hz, 1 channels, u8, 88 kb/s
The problems comes when i try to decode the file demo-unprocessed.wav.
It outputs a series of samples that has no sense. It outputs a serie of samples plotted as the image graph1-demo.jpg shows.The file is a WAV file encoded as : pcm_s16le, 44100 Hz, 1 channels, s16, 705 kb/s
IDK where the problem in my code is, I already checked the code before and after the decoding with FFMPEG, and it works absolutely fine.
Here is the code for the dataReader.cpp :
/* Start by including the necessary */
#include "dataReader.h"
#include <cstdlib>
#include <iostream>
#include <fstream>
#ifdef __cplusplus
extern "C" {
#endif
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libavutil></libavutil>avutil.h>
#ifdef __cplusplus
}
#endif
using namespace std;
/* initialization function for audioChunk */
audioChunk::audioChunk(){
data=NULL;
size=0;
bitrate=0;
}
/* function to get back chunk lenght in seconds */
int audioChunk::getTimeLenght(){
return size/bitrate;
}
/* initialization function for audioChunk_dNorm */
audioChunk_dNorm::audioChunk_dNorm(){
data=NULL;
size=0;
bitrate=0;
}
/* function to get back chunk lenght in seconds */
int audioChunk_dNorm::getTimeLenght(){
return size/bitrate;
}
/* function to normalize audioChunk into audioChunk_dNorm */
void audioChunk_dNorm::fillAudioChunk(audioChunk* cnk){
size=cnk->size;
bitrate=cnk->bitrate;
double min=cnk->data[0];
double max=cnk->data[0];
for(int i=0;isize;i++){
if(*(cnk->data+i)>max) max=*(cnk->data+i);
else if(*(cnk->data+i)data+i);
}
data=new double[size];
for(int i=0;i/data[i]=cnk->data[i]+256*data[i+1];
if(data[i]!=255) data[i]=2*((cnk->data[i])-(max-min)/2)/(max-min);
else data[i]=0;
}
cout<<"bitrate "<* inizialize audioChunk */
audioChunk output;
/* Check input times */
if((start_time<0)||(lenght<0)) {
cout<<"Input times should be positive";
return output;
}
/* Start FFmpeg */
av_register_all();
/* Initialize the frame to read the data and verify memory allocation */
AVFrame* frame = av_frame_alloc();
if (!frame)
{
cout << "Error allocating the frame" << endl;
return output;
}
/* Initialization of the Context, to open the file */
AVFormatContext* formatContext = NULL;
/* Opening the file, and check if it has opened */
if (avformat_open_input(&formatContext, path_name, NULL, NULL) != 0)
{
av_frame_free(&frame);
cout << "Error opening the file" << endl;
return output;
}
/* Find the stream info, if not found, exit */
if (avformat_find_stream_info(formatContext, NULL) < 0)
{
av_frame_free(&frame);
avformat_close_input(&formatContext);
cout << "Error finding the stream info" << endl;
return output;
}
/* Check inputs to verify time input */
if(start_time>(formatContext->duration/1000000)){
cout<< "Error, start_time is over file duration"<* Chunk = number of samples to output */
long long int chunk = ((formatContext->bit_rate)*lenght/8);
/* Start = address of sample where start to read */
long long int start = ((formatContext->bit_rate)*start_time/8);
/* Tot_sampl = number of the samples in the file */
long long int tot_sampl = (formatContext->bit_rate)*(formatContext->duration)/8000000;
/* Set the lenght of chunk to avoid segfault and to read all the file */
if (start+chunk>tot_sampl) {chunk = tot_sampl-start;}
if (lenght==0) {start = 0; chunk = tot_sampl;}
/* initialize the array to output */
output.data = new unsigned char[chunk];
output.bitrate = formatContext->bit_rate;
output.size=chunk;
av_dump_format(formatContext,0,NULL,0);
cout<* Find the audio Stream, if no audio stream are found, clean and exit */
AVCodec* cdc = NULL;
int streamIndex = av_find_best_stream(formatContext, AVMEDIA_TYPE_AUDIO, -1, -1, &cdc, 0);
if (streamIndex < 0)
{
av_frame_free(&frame);
avformat_close_input(&formatContext);
cout << "Could not find any audio stream in the file" << endl;
return output;
}
/* Open the audio stream to read data in audioStream */
AVStream* audioStream = formatContext->streams[streamIndex];
/* Initialize the codec context */
AVCodecContext* codecContext = audioStream->codec;
codecContext->codec = cdc;
/* Open the codec, and verify if it has opened */
if (avcodec_open2(codecContext, codecContext->codec, NULL) != 0)
{
av_frame_free(&frame);
avformat_close_input(&formatContext);
cout << "Couldn't open the context with the decoder" << endl;
return output;
}
/* Initialize buffer to store compressed packets */
AVPacket readingPacket;
av_init_packet(&readingPacket);
int j=0;
int count = 0;
while(av_read_frame(formatContext, &readingPacket)==0){
if((count+readingPacket.size)>start){
if(readingPacket.stream_index == audioStream->index){
AVPacket decodingPacket = readingPacket;
// Audio packets can have multiple audio frames in a single packet
while (decodingPacket.size > 0){
// Try to decode the packet into a frame
// Some frames rely on multiple packets, so we have to make sure the frame is finished before
// we can use it
int gotFrame = 0;
int result = avcodec_decode_audio4(codecContext, frame, &gotFrame, &decodingPacket);
count += result;
if (result >= 0 && gotFrame)
{
decodingPacket.size -= result;
decodingPacket.data += result;
int a;
for(int i=0;idata[0][i];
j++;
if(j>=chunk) break;
}
// We now have a fully decoded audio frame
}
else
{
decodingPacket.size = 0;
decodingPacket.data = NULL;
}
if(j>=chunk) break;
}
}
}else count+=readingPacket.size;
// To prevent memory leak, must free packet.
av_free_packet(&readingPacket);
if(j>=chunk) break;
}
// Some codecs will cause frames to be buffered up in the decoding process. If the CODEC_CAP_DELAY flag
// is set, there can be buffered up frames that need to be flushed, so we'll do that
if (codecContext->codec->capabilities & CODEC_CAP_DELAY)
{
av_init_packet(&readingPacket);
// Decode all the remaining frames in the buffer, until the end is reached
int gotFrame = 0;
int a;
int result=avcodec_decode_audio4(codecContext, frame, &gotFrame, &readingPacket);
while (result >= 0 && gotFrame)
{
// We now have a fully decoded audio frame
for(int i=0;idata[0][i];
j++;
if(j>=chunk) break;
}
if(j>=chunk) break;
}
}
// Clean up!
av_free(frame);
avcodec_close(codecContext);
avformat_close_input(&formatContext);
cout<<"Ended Reading, "<code></fstream></iostream></cstdlib>Here is the dataReader.h
/*
* File: dataReader.h
* Author: davide
*
* Created on 27 luglio 2015, 11.11
*/
#ifndef DATAREADER_H
#define DATAREADER_H
/* function that reads a file and outputs an array of samples
* @ path_name = the path of the file to read
* @ start_time = the position where to start the data reading, 0 = start
* the time is in seconds, it can hold to 10e-6 seconds
* @ lenght = the lenght of the frame to extract the data,
* 0 = read all the file (do not use with big files)
* if lenght > of file duration, it reads through the end of file.
* the time is in seconds, it can hold to 10e-6 seconds
*/
#include
class audioChunk{
public:
uint8_t *data;
unsigned int size;
int bitrate;
int getTimeLenght();
audioChunk();
};
class audioChunk_dNorm{
public:
double* data;
unsigned int size;
int bitrate;
int getTimeLenght();
void fillAudioChunk(audioChunk* cnk);
audioChunk_dNorm();
};
audioChunk readData(const char* path_name, const double start_time, const double lenght);
#endif /* DATAREADER_H */And finally there is the main.cpp of the application.
/*
* File: main.cpp
* Author: davide
*
* Created on 28 luglio 2015, 17.04
*/
#include <cstdlib>
#include "dataReader.h"
#include "transforms.h"
#include "tognuplot.h"
#include <fstream>
#include <iostream>
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
audioChunk *chunk1=new audioChunk;
audioChunk_dNorm *normChunk1=new audioChunk_dNorm;
*chunk1=readData("./audio/demo-unprocessed.wav",0,1);
normChunk1->fillAudioChunk(chunk1);
ofstream file1;
file1.open("./file/2wave.txt", std::ofstream::trunc);
if(file1.is_open()) {
for(int i=0;isize;i++) {
int a=chunk1->data[i];
file1<code></iostream></fstream></cstdlib>I can’t understand why the outputs goes like this. Is it possible that the decoder can’t convert the samples (pcm_16le, 16bits) into FFMPEG AVFrame.data, that stores the samples ad uint8_t ? And if it is it is there some way to make FFMPEG work for audio files that stores samples at more than 8 bits ?
The file graph1-demo_good.jpg is how the samples should be, extracted with a working LIBSNDFILE application that I made.
EDIT : Seems like the program can’t convert the decoded data, couples of little endian bytes stored in a couple of uint8_t unsigned char, into the destination format (that i set as unsigned char[]), because it stores the bits as little-endian 16 bytes. So the data into audioChunk.data is right, but I have to read it not as an unsigned char, but as a couple of little-endian bytes.
-
Compress video FFMPEG doesn't work
30 juillet 2015, par Douglas AnunciaçãoI’m trying to compress video using FFMPEG and this library : https://github.com/guardianproject/android-ffmpeg-java
I imported ffmpeglib as a module in my project. This is the code is use to compress :
public class MainActivity extends Activity {
private ArrayList<Object> listVideoPaths = new ArrayList<>();<br />
<br />
@Override<br />
protected void onCreate(Bundle savedInstanceState) {<br />
super.onCreate(savedInstanceState);<br />
setContentView(R.layout.activity_main);<br />
<br />
getGalleryVideos();<br />
<br />
File videoFolderFile = new File("/storage/emulated/0/DCIM/Camera/");<br />
<br />
if(videoFolderFile.exists())<br />
Log.e("TEST FFMPEG", "video folder exist");<br />
else<br />
Log.e("TEST FFMPEG", "video folder DON'T exist");<br />
<br />
<br />
File videoInputFile = new File(listVideoPaths.get(0).toString());<br />
<br />
if(videoInputFile.exists())<br />
Log.e("TEST FFMPEG", "video input file exist");<br />
else<br />
Log.e("TEST FFMPEG", "video input file DON'T exist");<br />
<br />
File videoOutputFile = new File(videoFolderFile,"output.mp4");<br />
<br />
if(videoOutputFile.exists())<br />
Log.e("TEST FFMPEG", "video output file exist");<br />
else<br />
Log.e("TEST FFMPEG", "video output file DON'T exist");<br />
<br />
FfmpegController ffmpegController;<br />
<br />
try {<br />
ffmpegController = new FfmpegController(this,videoFolderFile);<br />
<br />
Clip mediaIn = new Clip();<br />
<br />
mediaIn.path = videoInputFile.getAbsolutePath();<br />
<br />
mediaIn.videoFps = "25";<br />
<br />
ffmpegController.convertToMPEG(mediaIn, videoOutputFile.getAbsolutePath(), new ShellUtils.ShellCallback() {<br />
<br />
@Override<br />
public void shellOut(String shellLine) {<br />
Log.e("TEST FFMPEG", "shellOut - " + shellLine);<br />
}<br />
<br />
@Override<br />
public void processComplete(int exitValue) {<br />
Log.e("TEST FFMPEG", "proccess complete - " + exitValue);<br />
}<br />
});<br />
<br />
<br />
} catch (IOException e) {<br />
e.printStackTrace();<br />
} catch (Exception e) {<br />
e.printStackTrace();<br />
}finally {<br />
<br />
if(videoOutputFile.exists())<br />
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file exist");<br />
else<br />
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file DON'T exist");<br />
<br />
}<br />
}<br />
<br />
private void getGalleryVideos(){<br />
<br />
Cursor videoCursor = null;<br />
<br />
try {<br />
<br />
final String[] columns = { Media.DATA,<br />
Media._ID,<br />
Media.DATE_ADDED };<br />
<br />
final String orderBy = Media.DATE_ADDED;<br />
<br />
videoCursor = getContentResolver().query(<br />
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, columns,<br />
null, null, orderBy);<br />
<br />
if (videoCursor != null &amp;&amp; videoCursor.getCount() > 0) {<br />
<br />
while (videoCursor.moveToNext()) {<br />
<br />
int dataColumnIndex = videoCursor<br />
.getColumnIndex(Media.DATA);<br />
<br />
listVideoPaths.add(videoCursor<br />
.getString(dataColumnIndex));<br />
<br />
}<br />
<br />
}<br />
<br />
Collections.sort(listVideoPaths,new Comparator());<br />
<br />
} catch (Exception e) {<br />
<br />
e.printStackTrace();<br />
<br />
} finally {<br />
<br />
if (videoCursor != null) {<br />
<br />
if (!videoCursor.isClosed()) {<br />
<br />
videoCursor.close();<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
</code></pre><br />
<br />
<p>I get no error but the video doesn't play. The log file is:</p><br />
<br />
<blockquote><br />
<p>3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video folder exist 07-30 14:31:57.389<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video input file exist 07-30 14:31:57.389<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video output file DON'T exist 07-30 14:31:58.363<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut -<br />
/data/data/douglasanunciacao.androidffmpegjavateste/app_bin/ffmpeg -y<br />
-i /storage/emulated/0/DCIM/Camera/VID_20150730_142330563.mp4 -f mpeg /storage/emulated/0/DCIM/Camera/output.mp4 07-30 14:31:58.385<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - WARNING: linker:<br />
/data/data/douglasanunciacao.androidffmpegjavateste/app_bin/ffmpeg has<br />
text relocations. This is wasting memory and prevents security<br />
hardening. Please fix. 07-30 14:31:58.390<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg<br />
developers 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - built on Dec 22 2014 12:52:34 with gcc 4.6 20120106<br />
(prerelease) 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - configuration: --arch=arm --cpu=cortex-a8<br />
--target-os=linux --enable-runtime-cpudetect --prefix=/data/data/info.guardianproject.ffmpeg/app_opt --enable-pic --disable-shared --enable-static --cross-prefix=/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-<br />
--sysroot=/home/n8fr8/dev/android/ndk/platforms/android-16/arch-arm --extra-cflags='-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie' --extra-ldflags='-L../x264 -fPIE -pie' --enable-version3 --enable-gpl --disable-doc --enable-yasm --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --enable-parsers --enable-protocols --enable-filters --enable-avresample --enable-libfreetype --disable-indevs --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavutil 51. 54.100 / 51. 54.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavcodec 54. 23.100 / 54. 23.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavformat 54. 6.100 / 54. 6.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavdevice 54. 0.100 / 54. 0.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavfilter 2. 77.100 / 2. 77.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libswscale 2. 1.100 / 2. 1.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libswresample 0. 15.100 / 0. 15.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libpostproc 52. 0.100 / 52. 0.100 07-30 14:31:58.868<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Input #0, mov,mp4,m4a,3gp,3g2,mj2, from<br />
'/storage/emulated/0/DCIM/Camera/VID_20150730_142330563.mp4': 07-30<br />
14:31:58.869 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Metadata: 07-30 14:31:58.869<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - major_brand : mp42 07-30 14:31:58.870<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - minor_version : 0 07-30 14:31:58.871<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - compatible_brands: isommp42 07-30 14:31:58.872<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.873 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Duration: 00:00:01.89, start: 0.000000,<br />
bitrate: 17571 kb/s 07-30 14:31:58.874<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Stream #0:0(eng): Video: h264 (High) (avc1 /<br />
0x31637661), yuv420p, 1920x1080, 15874 kb/s, SAR 65536:65536 DAR 16:9,<br />
23.90 fps, 23.92 tbr, 90k tbn, 180k tbc 07-30 14:31:58.875 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.876<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - rotate : 270 07-30 14:31:58.877<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : VideoHandle 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1(eng): Audio: aac (mp4a /<br />
0x6134706D), 48000 Hz, stereo, s16, 127 kb/s 07-30 14:31:58.878<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.878<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : SoundHandle 07-30<br />
14:31:58.882 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - [buffer @ 0xb5cce0a0] w:1920 h:1080<br />
pixfmt:yuv420p tb:1/90000 sar:65536/65536 sws_param:flags=2 07-30<br />
14:31:58.882 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - [buffersink @ 0xb5cce0d0] No opaque field<br />
provided 07-30 14:31:58.891<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - [mpeg @ 0xb5c3df00] VBV buffer size not set, muxing may<br />
fail 07-30 14:31:58.892<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Output #0, mpeg, to<br />
'/storage/emulated/0/DCIM/Camera/output.mp4': 07-30 14:31:58.894<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.895<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - major_brand : mp42 07-30 14:31:58.896<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - minor_version : 0 07-30 14:31:58.896<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - compatible_brands: isommp42 07-30 14:31:58.897<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.898 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - encoder : Lavf54.6.100 07-30<br />
14:31:58.898 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:0(eng): Video: mpeg1video,<br />
yuv420p, 1920x1080 [SAR 65536:65536 DAR 16:9], q=2-31, 200 kb/s, 90k<br />
tbn, 23.98 tbc 07-30 14:31:58.899<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.899<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - rotate : 270 07-30 14:31:58.900<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.901 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : VideoHandle 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1(eng): Audio: mp2, 48000 Hz,<br />
stereo, s16, 128 kb/s 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : SoundHandle 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream mapping: 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Stream #0:0 -> #0:0 (h264 -> mpeg1video) 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1 -> #0:1 (aac -> mp2) 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Press [q] to stop, [?] for help 07-30<br />
14:31:59.824 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - frame= 4 fps=0.0 q=2.0 size= 0kB<br />
time=00:00:00.08 bitrate= 0.0kbits/s 07-30 14:32:02.029<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 8 fps=2.7 q=10.5 size= 4kB time=00:00:00.25<br />
bitrate= 130.9kbits/s 07-30 14:32:02.536<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 13 fps=3.7 q=25.2 size= 696kB time=00:00:00.45<br />
bitrate=12427.3kbits/s 07-30 14:32:03.045<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 18 fps=4.4 q=31.0 size= 750kB time=00:00:00.66<br />
bitrate=9206.8kbits/s 07-30 14:32:03.582<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 23 fps=5.0 q=31.0 size= 786kB time=00:00:00.87<br />
bitrate=7351.4kbits/s 07-30 14:32:04.140<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 28 fps=5.5 q=31.0 size= 862kB time=00:00:01.08<br />
bitrate=6511.8kbits/s 07-30 14:32:05.239<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 30 fps=4.8 q=31.0 size= 876kB time=00:00:01.16<br />
bitrate=6144.9kbits/s 07-30 14:32:05.746<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 35 fps=5.2 q=31.0 size= 910kB time=00:00:01.37<br />
bitrate=5416.2kbits/s 07-30 14:32:06.317<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 41 fps=5.6 q=31.0 size= 972kB time=00:00:01.62<br />
bitrate=4895.2kbits/s 07-30 14:32:06.832<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 45 fps=5.7 q=31.0 Lsize= 1022kB<br />
time=00:00:01.83 bitrate=4562.1kbits/s 07-30 14:32:06.832<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - video:984kB audio:30kB global headers:0kB muxing overhead<br />
0.756932% 07-30 14:32:06.858 3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
proccess complete - 0 07-30 14:32:06.858<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
terminou o ffmpeg ---> video output file exist</p><br />
</blockquote><br />
<br />
<p>Does anyone knows how to solve this problem? Thanks in advance.</p> -
Revision 5da87e84d5 : build/make/Android.mk : support TARGET_ARCH_ABI=x86_64 requires r10e or newer :
24 juillet 2015, par James ZernChanged Paths :
Modify /README
Modify /build/make/Android.mk
Modify /configure
build/make/Android.mk : support TARGET_ARCH_ABI=x86_64requires r10e or newer :
Android NDK, Revision 10e (May 2015)
...
Other bug fixes :
...
- Fixed .asm support for ABI x86_64.Change-Id : I51ec9a5f77c982b7412d922e896348a83ae2d7d6