
Recherche avancée
Médias (2)
-
Core Media Video
4 avril 2013, par
Mis à jour : Juin 2013
Langue : français
Type : Video
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (65)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)
Sur d’autres sites (8122)
-
Evolution #3987 : Ne pas supprimer les crédits à la compression CSS
18 août 2017, par tetue tetueValoriser les crédits dans plugin.xml, c’est super interne (puisque ça concerne une population hyper minoritaire de spipmestres lecteurs de ces infos) mais c’est bien aussi, mais ça ne résout pas le problème qui est pire : on les supprime du code source des pages web !
L’exclamation dans les commentaires CSS
/*! */
marque l’importance et doit échapper à la compression, ce que respecte la minification via LESS et SASS par exemple.Ce n’est certes pas un pur dysfonctionnement technique, mais ça pose un problème moral qui me semblait assez grave pour justifier une priorisation.
-
Evolution #3587 : Intégrer le plugin upload HTML5 dans SPIP
26 août 2017, par b bEn lien avec #3582 mais j’hésite à attacher le ticket ci-présent au ticket roadmap. À noter qu’il existe aussi le super plugin bigup présenté par marcimat lors de la dernière party à Toulouse cf https://gitlab.com/magraine/bigup
-
FFMPEG filter is not implementing
31 août 2017, par Alok Kumar VermaI’m using FFMPEG for applying and saving the file to the specified path. Since I’m new to FFMPEG so I’ve followed this link to import the FFMPEG libraries inside my project.
FFMPEG libraries are working fine inside my project. Now I’ve followed FFMPEG Commands link for applying filters using commands. For now i’m using vintage filter command to check whether it is working or not
I’ve followed FFMPEG Project in Android link to apply the filters and save it to my storage path.
I’m using a file from my storage path to apply filter for the same and saving them inside the specified path. The problem is that the command is implementing(doubtful) but no file is getting saved with the filters, nor I get any exception or any error in my logcat. I"m very doubtful whether what is being left to get the desired result.
This is my code where I’m using the FFMPEG for applying filters and saving them in the specified path.
FilterAcitivity.java
public class FilterActivity extends AppCompatActivity {
private ArrayList<string> videoReceiveddata = null;
private EPlayerView ePlayerView;
private StringBuilder stringBuilder;
private DataSource.Factory dataSourceFactory;
private ExtractorsFactory extractorsFactory;
private Button play,stop,noneFilter,faded,noir,instant;
private FFmpeg fFmpeg;
private int choice = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter);
Bundle videoExtras = getIntent().getExtras();
videoReceiveddata = videoExtras.getStringArrayList("sendData");
Log.e("RECEIVED_VIDEO====", videoReceiveddata.toString());
stringBuilder = new StringBuilder();
for(String path : videoReceiveddata){
stringBuilder.append(path);
}
//laoding the ffmpeg binary files
loadFFMEPGBinary();
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory =
new AdaptiveTrackSelection.Factory(bandwidthMeter);
TrackSelector trackSelector =
new DefaultTrackSelector(videoTrackSelectionFactory);
// Measures bandwidth during playback. Can be null if not required.
DefaultBandwidthMeter defaultBandwidthMeter = new DefaultBandwidthMeter();
// Produces DataSource instances through which media data is loaded.
dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),
Util.getUserAgent(getApplicationContext(), "TestApp"), defaultBandwidthMeter);
// Produces Extractor instances for parsing the media data.
extractorsFactory = new DefaultExtractorsFactory();
// This is the MediaSource representing the media to be played.
MediaSource videoSource = new ExtractorMediaSource(Uri.parse(stringBuilder.toString()),
dataSourceFactory, extractorsFactory, null, null);
// 2. Create the player
final SimpleExoPlayer player =
ExoPlayerFactory.newSimpleInstance(getApplicationContext(), trackSelector);
player.prepare(videoSource);
ePlayerView = (EPlayerView) findViewById(R.id.ePlayer);
ePlayerView.setSimpleExoPlayer(player);
ePlayerView.onResume();
play = (Button) findViewById(R.id.playButton);
stop = (Button) findViewById(R.id.stopButton);
faded = (Button) findViewById(R.id.fadedFilter);
noneFilter = (Button) findViewById(R.id.noFilter);
noir = (Button) findViewById(R.id.noirFilter);
instant = (Button) findViewById(R.id.instantFilter);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MediaSource videoSource = new ExtractorMediaSource(Uri.parse(stringBuilder.toString()),
dataSourceFactory, extractorsFactory, null, null);
player.prepare(videoSource);
player.setPlayWhenReady(true);
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
player.stop();
}
});
noneFilter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
choice = 1;
ePlayerView.setGlFilter(new GlFilter());
}
});
faded.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
choice = 2;
ePlayerView.setGlFilter(new GlSepiaFilter());
Log.e("Filter Applied",ePlayerView.toString());
Log.e("Filter Applied====",stringBuilder.toString());
}
});
}
//loading binary of ffmpeg
private void loadFFMEPGBinary() {
try {
if (fFmpeg == null) {
Log.e("TEST=====", "ffmpeg : null");
fFmpeg = FFmpeg.getInstance(this);
}
fFmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onFailure() {
showUnsupportedExceptionDialog();
}
@Override
public void onSuccess() {
Log.d("TESTAPP====", "ffmpef : coorect loaded");
}
});
} catch (FFmpegNotSupportedException e) {
showUnsupportedExceptionDialog();
} catch (Exception e) {
Log.d("TESTAPP=====", "Exception not supported" + e);
}
}
private void showUnsupportedExceptionDialog() {
new AlertDialog.Builder(FilterActivity.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Not Supported")
.setMessage("Device Not Supported")
.setCancelable(false)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
FilterActivity.this.finish();
}
})
.create()
.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.filter_menu,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.save:
if(choice == 1){
addThatFilter();
}else if(choice == 2){
Toast.makeText(getApplicationContext(),"No filter",
Toast.LENGTH_SHORT).show();
}
default:
return super.onOptionsItemSelected(item);
}
}
private void addThatFilter() {
String savingPath = Environment.getExternalStorageDirectory().getAbsolutePath().toString()
+ "/FilterVideo.mp4";
String complexCommand = "ffmpeg -y -i"+ stringBuilder.toString() +"-strict experimental -vf " +
"curves=vintage -s 640x480 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -vcodec " +
savingPath;
execFFMPEGBinary(complexCommand);
}
private void execFFMPEGBinary( final String complexCommand) {
try{
fFmpeg.execute(new String[]{complexCommand}, new ExecuteBinaryResponseHandler(){
@Override
public void onFailure(String message) {
Log.e("Failed with output", message);
}
@Override
public void onSuccess(String message) {
Toast.makeText(getApplicationContext(),"Success!",Toast.LENGTH_SHORT)
.show();
}
});
}catch (FFmpegCommandAlreadyRunningException e){
//do nothing
}
} }
</string>