Recherche avancée

Médias (3)

Mot : - Tags -/pdf

Autres articles (105)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (8674)

  • Evolution #2893 (Nouveau) : Utilisation de l’API file HTML5 pout uploader les documents

    1er novembre 2012, par Charles Stephan

    Bonjour à tous, Je me permet ce premier ticket car je ne trouve pas de demandes relatives à cette simple possibilité. Je trouverais super de pouvoir observer la progression des uploads avec… une barre de progression. Plutôt qu’un gif animé. Je pourrais me charger de son design et son integration. (...)

  • Evolution #2908 (Fermé) : SVP : le lien Cocher les mises à jour pourrait sélectionner automatiquem...

    29 novembre 2012, par b b

    Super, merci Bertrand, je ferme le ticket :)

  • java.lang.ExceptionInInitializerError in FFmpeg Test

    22 janvier 2013, par Mehul Ranpara

    I have a demo called FFMpegTest of Android which i downloaded from here..https://github.com/appunite/AndroidFFmpeg..and i also have Library file of FFMpeg which is in this demo and i am using this Library in FFmpegTest..Now when i running..it gives java.lang.ExceptionInInitializerError.. Anyone have an idea about this..please share with me..Thanx in Advance..

    which is in...VideoActivity.java

    public class VideoActivity extends Activity implements OnClickListener,FFmpegListener, OnSeekBarChangeListener, OnItemSelectedListener
    {
       private FFmpegPlayer mpegPlayer;
       private static boolean isSurfaceView = true;
       protected boolean mPlay = false;
       private View controlsView;
       private View loadingView;
       private SeekBar seekBar;
       public View videoView;
       private Button playPauseButton;
       private boolean mTracking = false;
       private View streamsView;
       private Spinner languageSpinner;
       private int languageSpinnerSelectedPosition = 0;
       private Spinner subtitleSpinner;
       private int subtitleSpinnerSelectedPosition = 0;
       private StreamAdapter languageAdapter;
       private StreamAdapter subtitleAdapter;

       private FFmpegStreamInfo audioStream = null;
       private FFmpegStreamInfo subtitleStream = null;

       @Override
       public void onCreate(Bundle savedInstanceState)
       {
           this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
           getWindow().setFormat(PixelFormat.RGB_565);
           getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DITHER);

           super.onCreate(savedInstanceState);

           this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
           this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
           this.getWindow().setBackgroundDrawable(null);

           this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

           if (isSurfaceView)
               VideoActivity.this.setContentView(R.layout.video_surfaceview);
           else
               VideoActivity.this.setContentView(R.layout.video_view);

           seekBar = (SeekBar) this.findViewById(R.id.seek_bar);
           seekBar.setOnSeekBarChangeListener(this);

           playPauseButton = (Button) this.findViewById(R.id.play_pause);
           playPauseButton.setOnClickListener(this);

           controlsView = this.findViewById(R.id.controls);
           streamsView = this.findViewById(R.id.streams);
           loadingView = this.findViewById(R.id.loading_view);
           languageSpinner = (Spinner) this.findViewById(R.id.language_spinner);
           subtitleSpinner = (Spinner) this.findViewById(R.id.subtitle_spinner);

           languageAdapter = new StreamAdapter(this,android.R.layout.simple_spinner_item,new ArrayList<ffmpegstreaminfo>(), StreamAdapterType.AUDIO);
           languageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           languageSpinner.setAdapter(languageAdapter);
           languageSpinner.setOnItemSelectedListener(this);

           subtitleAdapter = new StreamAdapter(this,android.R.layout.simple_spinner_item,new ArrayList<ffmpegstreaminfo>(), StreamAdapterType.SUBTITLE);
           subtitleAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           subtitleSpinner.setAdapter(subtitleAdapter);
           subtitleSpinner.setOnItemSelectedListener(this);

           try
           {
               videoView = this.findViewById(R.id.video_view);
               //VideoActivity.this.mpegPlayer = new FFmpegPlayer((FFmpegDisplay)videoView, VideoActivity.this);
               this.mpegPlayer = new FFmpegPlayer((FFmpegDisplay)videoView, this);
               this.mpegPlayer.setMpegListener(this);
               setDataSource();

               //Too
           }
           catch (Exception e)
           {
               e.printStackTrace();
           }
       }

       private static enum StreamAdapterType
       {
           AUDIO, SUBTITLE
       };

       private static class StreamAdapter extends ArrayAdapter<ffmpegstreaminfo>
       {

           private final StreamAdapterType adapterType;

           public StreamAdapter(Context context, int textViewResourceId,List<ffmpegstreaminfo> objects, StreamAdapterType adapterType)
           {
               super(context, textViewResourceId, objects);
               this.adapterType = adapterType;
           }

           @Override
           public View getView(int position, View convertView, ViewGroup parent)
           {
               TextView view = (TextView) super.getView(position, convertView, parent);

               FFmpegStreamInfo item = getItem(position);
               Locale locale = item.getLanguage();

               String formatter;
               if (StreamAdapterType.AUDIO.equals(adapterType))
               {
                   formatter = getContext().getString(R.string.language_spinner_drop_down);
               }
               else
               {
                   formatter = getContext().getString(R.string.subtitle_spinner_drop_down);
               }
               String languageName = locale == null ? getContext().getString(R.string.unknown) : locale.getDisplayLanguage();
               String text = String.format(formatter, languageName);
               view.setText(text);
               return view;
           }

           @Override
           public View getDropDownView(int position, View convertView, ViewGroup parent)
           {
               CheckedTextView view = (CheckedTextView) super.getDropDownView(position, convertView, parent);
               FFmpegStreamInfo item = getItem(position);
               Locale locale = item.getLanguage();
               String languageName = locale == null ? getContext().getString(R.string.unknown) : locale.getDisplayLanguage();
               view.setText(languageName);
               return view;
           }

       }

       @Override
       protected void onPause() {
           super.onPause();
       };

       @Override
       protected void onResume() {
           super.onResume();
       }

       @Override
       protected void onDestroy()
       {
           super.onDestroy();
           this.mpegPlayer.setMpegListener(null);
           this.mpegPlayer.stop();
           stop();
       }

       private void setDataSource()
       {
           Log.d("url", "checin");
           HashMap params = new HashMap();

           // set font for ass
           File assFont = new File(Environment.getExternalStorageDirectory(),"Roboto.ttf");
           params.put("ass_default_font_path", assFont.getAbsolutePath());

           Intent intent = getIntent();
           String url = intent.getStringExtra(AppConstants.VIDEO_PLAY_ACTION_EXTRA_URL);
           Log.d("url", url);
           if (url == null)
           {
               throw new IllegalArgumentException(String.format("\"%s\" did not provided", AppConstants.VIDEO_PLAY_ACTION_EXTRA_URL));
           }
           if (intent.hasExtra(AppConstants.VIDEO_PLAY_ACTION_EXTRA_ENCRYPTION_KEY))
           {
               params.put("aeskey", intent.getStringExtra(AppConstants.VIDEO_PLAY_ACTION_EXTRA_ENCRYPTION_KEY));
           }

           this.playPauseButton.setBackgroundResource(android.R.drawable.ic_media_play);
           this.playPauseButton.setEnabled(true);
           mPlay = false;

           mpegPlayer.setDataSource(url, params, null, audioStream,subtitleStream);
       }

       @Override
       public void onClick(View v)
       {
           int viewId = v.getId();
           switch (viewId)
           {
               case R.id.play_pause:
               resumePause();
               return;

               default:
               throw new RuntimeException();
           }
       }

       @Override
       public void onFFUpdateTime(int currentTimeS, int videoDurationS, boolean isFinished)
       {
           if (!mTracking)
           {
               seekBar.setMax(videoDurationS);
               seekBar.setProgress(currentTimeS);
           }

           if (isFinished)
           {
               new AlertDialog.Builder(this)
                       .setTitle(R.string.dialog_end_of_video_title)
                       .setMessage(R.string.dialog_end_of_video_message)
                       .setCancelable(true).show();
           }
       }

       @Override
       public void onFFDataSourceLoaded(FFmpegError err, FFmpegStreamInfo[] streams)
       {
           if (err != null) {
               String format = getResources().getString(
                       R.string.main_could_not_open_stream);
               String message = String.format(format, err.getMessage());

               Builder builder = new AlertDialog.Builder(VideoActivity.this);
               builder.setTitle(R.string.app_name)
                       .setMessage(message)
                       .setOnCancelListener(
                               new DialogInterface.OnCancelListener() {

                                   @Override
                                   public void onCancel(DialogInterface dialog) {
                                       VideoActivity.this.finish();
                                   }
                               }).show();
               return;
           }
           playPauseButton.setBackgroundResource(android.R.drawable.ic_media_play);
           playPauseButton.setEnabled(true);
           this.controlsView.setVisibility(View.VISIBLE);
           this.streamsView.setVisibility(View.VISIBLE);
           this.loadingView.setVisibility(View.GONE);
           this.videoView.setVisibility(View.VISIBLE);
           languageAdapter.clear();
           subtitleAdapter.clear();
           for (FFmpegStreamInfo streamInfo : streams) {
               CodecType mediaType = streamInfo.getMediaType();
               if (FFmpegStreamInfo.CodecType.AUDIO.equals(mediaType)) {
                   languageAdapter.add(streamInfo);
               } else if (FFmpegStreamInfo.CodecType.SUBTITLE.equals(mediaType)) {
                   subtitleAdapter.add(streamInfo);
               }
           }
       }

       private void displaySystemMenu(boolean visible) {
           if (Build.VERSION.SDK_INT >= 14) {
               displaySystemMenu14(visible);
           } else if (Build.VERSION.SDK_INT >= 11) {
               displaySystemMenu11(visible);
           }
       }

       @SuppressWarnings("deprecation")
       @TargetApi(11)
       private void displaySystemMenu11(boolean visible) {
           if (visible) {
               this.videoView.setSystemUiVisibility(View.STATUS_BAR_VISIBLE);
           } else {
               this.videoView.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
           }
       }

       @TargetApi(14)
       private void displaySystemMenu14(boolean visible) {
           if (visible) {
               this.videoView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
           } else {
               this.videoView
                       .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
           }
       }

       public void resumePause() {
           this.playPauseButton.setEnabled(false);
           if (mPlay) {
               mpegPlayer.pause();
           } else {
               mpegPlayer.resume();
               displaySystemMenu(true);
           }
           mPlay = !mPlay;
       }

       @Override
       public void onFFResume(NotPlayingException result) {
           this.playPauseButton
                   .setBackgroundResource(android.R.drawable.ic_media_pause);
           this.playPauseButton.setEnabled(true);

           displaySystemMenu(false);
           mPlay = true;
       }

       @Override
       public void onFFPause(NotPlayingException err) {
           this.playPauseButton
                   .setBackgroundResource(android.R.drawable.ic_media_play);
           this.playPauseButton.setEnabled(true);
           mPlay = false;
       }

       private void stop() {
           this.controlsView.setVisibility(View.GONE);
           this.streamsView.setVisibility(View.GONE);
           this.loadingView.setVisibility(View.VISIBLE);
           this.videoView.setVisibility(View.INVISIBLE);
       }

       @Override
       public void onFFStop() {
       }

       @Override
       public void onFFSeeked(NotPlayingException result)
       {
    //      if (result != null)
    //          throw new RuntimeException(result);
       }

       @Override
       public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
       {
           if (fromUser)
           {
               mpegPlayer.seek(progress);
           }
       }

       @Override
       public void onStartTrackingTouch(SeekBar seekBar) {
           mTracking = true;
       }

       @Override
       public void onStopTrackingTouch(SeekBar seekBar) {
           mTracking = false;
       }

       private void setDataSourceAndResumeState() {
           int progress = seekBar.getProgress();
           setDataSource();
           mpegPlayer.seek(progress);
           mpegPlayer.resume();
       }

       @Override
       public void onItemSelected(AdapterView&lt;?> parentView,
               View selectedItemView, int position, long id) {
           FFmpegStreamInfo streamInfo = (FFmpegStreamInfo) parentView
                   .getItemAtPosition(position);
           if (parentView == languageSpinner) {
               if (languageSpinnerSelectedPosition != position) {
                   languageSpinnerSelectedPosition = position;
                   audioStream = streamInfo;
                   setDataSourceAndResumeState();
               }
           } else if (parentView == subtitleSpinner) {
               if (subtitleSpinnerSelectedPosition != position) {
                   subtitleSpinnerSelectedPosition = position;
                   subtitleStream = streamInfo;
                   setDataSourceAndResumeState();
               }
           } else {
               throw new RuntimeException();
           }
       }

       @Override
       public void onNothingSelected(AdapterView&lt;?> parentView) {
           // if (parentView == languageSpinner) {
           // audioStream = null;
           // } else if (parentView == subtitleSpinner) {
           // subtitleStream = null;
           // } else {
           // throw new RuntimeException();
           // }
           // play();
       }

    }
    </ffmpegstreaminfo></ffmpegstreaminfo></ffmpegstreaminfo></ffmpegstreaminfo>

    and this is my logcat :-

    01-22 15:29:15.302: E/AndroidRuntime(1560): FATAL EXCEPTION: main
    01-22 15:29:15.302: E/AndroidRuntime(1560): java.lang.ExceptionInInitializerError
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at java.lang.Class.newInstanceImpl(Native Method)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at java.lang.Class.newInstance(Class.java:1319)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.os.Handler.dispatchMessage(Handler.java:99)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.os.Looper.loop(Looper.java:137)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at android.app.ActivityThread.main(ActivityThread.java:4424)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at java.lang.reflect.Method.invokeNative(Native Method)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at java.lang.reflect.Method.invoke(Method.java:511)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at dalvik.system.NativeStart.main(Native Method)
    01-22 15:29:15.302: E/AndroidRuntime(1560): Caused by: java.lang.UnsatisfiedLinkError: Couldn&#39;t load ffmpeg: findLibrary returned null
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at java.lang.Runtime.loadLibrary(Runtime.java:365)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at java.lang.System.loadLibrary(System.java:535)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     at roman10.ffmpegTest.VideoBrowser.<clinit>(VideoBrowser.java:37)
    01-22 15:29:15.302: E/AndroidRuntime(1560):     ... 15 more
    </clinit>