
Recherche avancée
Autres articles (105)
-
Mediabox : ouvrir les images dans l’espace maximal pour l’utilisateur
8 février 2011, parLa visualisation des images est restreinte par la largeur accordée par le design du site (dépendant du thème utilisé). Elles sont donc visibles sous un format réduit. Afin de profiter de l’ensemble de la place disponible sur l’écran de l’utilisateur, il est possible d’ajouter une fonctionnalité d’affichage de l’image dans une boite multimedia apparaissant au dessus du reste du contenu.
Pour ce faire il est nécessaire d’installer le plugin "Mediabox".
Configuration de la boite multimédia
Dès (...) -
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 -
Participer à sa documentation
10 avril 2011La documentation est un des travaux les plus importants et les plus contraignants lors de la réalisation d’un outil technique.
Tout apport extérieur à ce sujet est primordial : la critique de l’existant ; la participation à la rédaction d’articles orientés : utilisateur (administrateur de MediaSPIP ou simplement producteur de contenu) ; développeur ; la création de screencasts d’explication ; la traduction de la documentation dans une nouvelle langue ;
Pour ce faire, vous pouvez vous inscrire sur (...)
Sur d’autres sites (9058)
-
FFMpeg avformat_write_header always returns 0
24 octobre 2015, par gabe.rozeWe’ve asked a freelancer to build a video encoder with FFMPeg for iOS but there is a bug and the freelancer is no longer available. I very inexperienced in FFMpeg and video encoding and am trying to debug this error.
From what I understand, we’re attempting to create an output file and create a header for it however, avformat_write_header is always less than zero. If I comment it out, it does not work
- (BOOL) writeHeaderWithError:(NSError *__autoreleasing *)error {
AVDictionary *options = NULL;
// Write header for output file
int writeHeaderValue = avformat_write_header(self.formatContext, &options);
if (writeHeaderValue < 0) {
if (error != NULL) {
*error = [FFUtilities errorForAVError:writeHeaderValue];
}
av_dict_free(&options);
return NO;
}
av_dict_free(&options);
return YES;
}Below is some relevant code of how we instantiate a FFOutputFile
- (AVFormatContext*) formatContextForOutputPath:(NSString*)outputPath options:(NSDictionary*)options {
AVFormatContext *outputFormatContext = NULL;
NSString *outputFormatString = [options objectForKey:kFFmpegOutputFormatKey];
int openOutputValue = avformat_alloc_output_context2(&outputFormatContext, NULL, [outputFormatString UTF8String], [outputPath UTF8String]);
if (openOutputValue < 0) {
avformat_free_context(outputFormatContext);
return nil;
}
return outputFormatContext;
}
- (void) addOutputStream:(FFOutputStream*)outputStream {
[self.streams addObject:outputStream];
}
- (id) initWithPath:(NSString *)path options:(NSDictionary *)options {
if (self = [super initWithPath:path options:options]) {
self.formatContext = [self formatContextForOutputPath:path options:options];
self.streams = [NSMutableArray array];
self.bitstreamFilters = [NSMutableSet set];
}
return self;
} -
Recording from an ImageView using FFmpegFrameRecorder
8 novembre 2015, par UserAxI want to convert images displayed in a imageview to a video using FFmpegFrameRecorder, and add audio using mic as the source
I have imported JavaCV to my project(javacv.jar, javacpp.jar, opencv.jar , openv-android-arm.jar, ffmpeg.jar, ffmpeg-android-arm.jar ; added them under project structure/dependencies)
I am using this code https://github.com/gderaco/JavaCVTest/tree/master
I get error as "record (org.bytedeco.javacv.Frame) in FFmpegFrameRecorder cannot be applied to (org.bytedeco.javacpp.opencv_coreiplImage)"
where have i gone wrong and how to add mic as the audio source ?
CODE:
import..
import org.bytedeco.javacpp.opencv_core;
import org.bytedeco.javacv.FFmpegFrameRecorder;
import static org.bytedeco.javacpp.opencv_imgcodecs.cvLoadImage;
public class MyAndroidAppActivity extends Activity {
ImageView image;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addListenerOnButton();
opencv_core.IplImage img = cvLoadImage("ImageView");
FFmpegFrameRecorder recorder = new
FFmpegFrameRecorder("/sdcard/test.mpeg",200,150);
try {
recorder.setFrameRate(30);
recorder.start();
for (int i=0;i<100;i++)
{
recorder.record(img);
}
recorder.stop();
}
catch (Exception e){
e.printStackTrace();
}
}
public void addListenerOnButton() {
image = (ImageView) findViewById(R.id.imageView1);
button = (Button) findViewById(R.id.btn1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
image.setImageResource(R.drawable.image1);
}
});
//...........
button = (Button) findViewById(R.id.btn10);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
image.setImageResource(R.drawable.image10);
}
});
} -
Background process that is run on file is still running after the file is deleted
19 octobre 2015, par Marko DjokicSo i have a process in Android that is run like this :
process = Runtime.getRuntime().exec(commandString);
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
public void run() {
Log.d("ShutDownHook Called");
process.destroy();
}
}));Where the command string contains a file path and some other arguments.
That process is a CPU heavy process and can take last as long as a few hours (Movie transcoding). The file is an ffmpeg static file. The problem is in some cases the process stays in the background even though i killed the app. That situation is on one of my phones when i kill the app with the task manager. That being said, the onDestroy() method is not called, nor is the onTerminate() from the application class, nor the shutdown hook from above.Also i have created a background service with a notification, so when exit the app the service should stay in the background. Even with this kind of control, when i kill the application with the task manager, the service is restarted and i lose all the references to my ffmpeg class, Async task, process etc, and i cannot stop the process because i have null pointers.
Anyway i can ensure that the service will not be tampered with the app kill, so i can kill the process with the notification bar from my service ?ServiceConnection mConnection = new ServiceConnection() {
public void onServiceDisconnected(ComponentName name) {
Log.d("HelperActivity", "onServiceDisconnected");
mIsBound = false;
mServer = null;
}
public void onServiceConnected(ComponentName name, IBinder service) {
Log.d("HelperActivity", "onServiceConnected");
mIsBound = true;
NotificationService.LocalBinder mLocalBinder = (NotificationService.LocalBinder)service;
mServer = mLocalBinder.getServerInstance();
//mServer.test();
}
};
//This is the onCreate of the application class
@Override
public void onCreate() {
super.onCreate();
Intent intent = new Intent(this,
NotificationService.class);
startService(intent);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
Log.d("onCreate", "Called");
singleton = this;
}I have been using http://hiteshsondhi88.github.io/ffmpeg-android-java/ for the ffmpeg support. Of course added new features but the basic concept of running a ffmpeg command is the same.
One other strange thing is, when i start the app i delete the previous file, and still the process is running in the background, cause my transcoding performances are halved. The file is copied from assets to the internal storage every time the app is started.
File ffmpegFile = new File(FileUtils.getFFmpeg(context));
if (ffmpegFile.exists()) {
Log.d("File exists!");
ffmpegFile.delete();
}The file is deleted i checked, but my CPU is still used a lot.
Sorry for any mistakes during the post, it is my first one.