Recherche avancée

Médias (91)

Autres articles (84)

  • 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

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

Sur d’autres sites (7973)

  • Compress video FFMPEG doesn't work

    13 février 2018, par Douglas Anunciação

    I’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&lt;Object&gt; listVideoPaths = new ArrayList&lt;&gt;();<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(&quot;/storage/emulated/0/DCIM/Camera/&quot;);<br />
    <br />
           if(videoFolderFile.exists())<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video folder exist&quot;);<br />
           else<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video folder DON'T exist&quot;);<br />
    <br />
    <br />
           File videoInputFile = new File(listVideoPaths.get(0).toString());<br />
    <br />
           if(videoInputFile.exists())<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video input file exist&quot;);<br />
           else<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video input file DON'T exist&quot;);<br />
    <br />
           File videoOutputFile = new File(videoFolderFile,&quot;output.mp4&quot;);<br />
    <br />
           if(videoOutputFile.exists())<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video output file exist&quot;);<br />
           else<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video output file DON'T exist&quot;);<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 =  &quot;25&quot;;<br />
    <br />
               ffmpegController.convertToMPEG(mediaIn, videoOutputFile.getAbsolutePath(), new ShellUtils.ShellCallback() {<br />
    <br />
                   @Override<br />
                   public void shellOut(String shellLine) {<br />
                       Log.e(&quot;TEST FFMPEG&quot;, &quot;shellOut - &quot; + shellLine);<br />
                   }<br />
    <br />
                   @Override<br />
                   public void processComplete(int exitValue) {<br />
                       Log.e(&quot;TEST FFMPEG&quot;, &quot;proccess complete - &quot; + 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(&quot;TEST FFMPEG&quot;, &quot;finished ffmpeg ---&gt; video output file exist&quot;);<br />
               else<br />
                   Log.e(&quot;TEST FFMPEG&quot;, &quot;finished ffmpeg ---&gt; video output file DON'T exist&quot;);<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;&amp;amp; videoCursor.getCount() &gt; 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 />
    &lt;/code&gt;&lt;/pre&gt;<br />
    <br />
    &lt;p&gt;I get no error but the video doesn't play. The log file is:&lt;/p&gt;<br />
    <br />
    &lt;blockquote&gt;<br />
     &lt;p&gt;3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     video folder exist 07-30 14:31:57.389&lt;br&gt;<br />
     3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     video input file exist 07-30 14:31:57.389&lt;br&gt;<br />
     3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     video output file DON'T exist 07-30 14:31:58.363&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     major_brand     : mp42 07-30 14:31:58.870&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     minor_version   : 0 07-30 14:31:58.871&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     compatible_brands: isommp42 07-30 14:31:58.872&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -       rotate          : 270 07-30 14:31:58.877&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     Metadata: 07-30 14:31:58.878&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -   Metadata: 07-30 14:31:58.895&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     major_brand     : mp42 07-30 14:31:58.896&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     minor_version   : 0 07-30 14:31:58.896&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     compatible_brands: isommp42 07-30 14:31:58.897&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     Metadata: 07-30 14:31:58.899&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -       rotate          : 270 07-30 14:31:58.900&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     Metadata: 07-30 14:31:58.906&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -   Stream #0:0 -&gt; #0:0 (h264 -&gt; mpeg1video) 07-30<br />
     14:31:58.906    3096-3182/douglasanunciacao.androidffmpegjavateste<br />
     E/TESTE FFMPEG﹕ shellOut -   Stream #0:1 -&gt; #0:1 (aac -&gt; 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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     terminou o ffmpeg ---&gt; video output file exist&lt;/p&gt;<br />
    &lt;/blockquote&gt;<br />
    <br />
    &lt;p&gt;Does anyone knows how to solve this problem? Thanks in advance.&lt;/p&gt;
  • Compress video FFMPEG doesn't work

    30 juillet 2015, par Douglas Anunciação

    I’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&lt;Object&gt; listVideoPaths = new ArrayList&lt;&gt;();<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(&quot;/storage/emulated/0/DCIM/Camera/&quot;);<br />
    <br />
           if(videoFolderFile.exists())<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video folder exist&quot;);<br />
           else<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video folder DON'T exist&quot;);<br />
    <br />
    <br />
           File videoInputFile = new File(listVideoPaths.get(0).toString());<br />
    <br />
           if(videoInputFile.exists())<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video input file exist&quot;);<br />
           else<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video input file DON'T exist&quot;);<br />
    <br />
           File videoOutputFile = new File(videoFolderFile,&quot;output.mp4&quot;);<br />
    <br />
           if(videoOutputFile.exists())<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video output file exist&quot;);<br />
           else<br />
               Log.e(&quot;TEST FFMPEG&quot;, &quot;video output file DON'T exist&quot;);<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 =  &quot;25&quot;;<br />
    <br />
               ffmpegController.convertToMPEG(mediaIn, videoOutputFile.getAbsolutePath(), new ShellUtils.ShellCallback() {<br />
    <br />
                   @Override<br />
                   public void shellOut(String shellLine) {<br />
                       Log.e(&quot;TEST FFMPEG&quot;, &quot;shellOut - &quot; + shellLine);<br />
                   }<br />
    <br />
                   @Override<br />
                   public void processComplete(int exitValue) {<br />
                       Log.e(&quot;TEST FFMPEG&quot;, &quot;proccess complete - &quot; + 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(&quot;TEST FFMPEG&quot;, &quot;finished ffmpeg ---&gt; video output file exist&quot;);<br />
               else<br />
                   Log.e(&quot;TEST FFMPEG&quot;, &quot;finished ffmpeg ---&gt; video output file DON'T exist&quot;);<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;&amp;amp; videoCursor.getCount() &gt; 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 />
    &lt;/code&gt;&lt;/pre&gt;<br />
    <br />
    &lt;p&gt;I get no error but the video doesn't play. The log file is:&lt;/p&gt;<br />
    <br />
    &lt;blockquote&gt;<br />
     &lt;p&gt;3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     video folder exist 07-30 14:31:57.389&lt;br&gt;<br />
     3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     video input file exist 07-30 14:31:57.389&lt;br&gt;<br />
     3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     video output file DON'T exist 07-30 14:31:58.363&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     major_brand     : mp42 07-30 14:31:58.870&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     minor_version   : 0 07-30 14:31:58.871&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     compatible_brands: isommp42 07-30 14:31:58.872&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -       rotate          : 270 07-30 14:31:58.877&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     Metadata: 07-30 14:31:58.878&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -   Metadata: 07-30 14:31:58.895&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     major_brand     : mp42 07-30 14:31:58.896&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     minor_version   : 0 07-30 14:31:58.896&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     compatible_brands: isommp42 07-30 14:31:58.897&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     Metadata: 07-30 14:31:58.899&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -       rotate          : 270 07-30 14:31:58.900&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -     Metadata: 07-30 14:31:58.906&lt;br&gt;<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&lt;br&gt;<br />
     3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     shellOut -   Stream #0:0 -&gt; #0:0 (h264 -&gt; mpeg1video) 07-30<br />
     14:31:58.906    3096-3182/douglasanunciacao.androidffmpegjavateste<br />
     E/TESTE FFMPEG﹕ shellOut -   Stream #0:1 -&gt; #0:1 (aac -&gt; 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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<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&lt;br&gt;<br />
     3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
     terminou o ffmpeg ---&gt; video output file exist&lt;/p&gt;<br />
    &lt;/blockquote&gt;<br />
    <br />
    &lt;p&gt;Does anyone knows how to solve this problem? Thanks in advance.&lt;/p&gt;
  • Android AudioRecord to FFMPEG encode native AAC

    8 mars 2013, par Curtis Kiu

    I am doing video chatting in android and i would like to port ffmpeg to stream rtsp or rtmp but now i have a try in RTSP first.
    Somehow the problem now is av_write_frame or av_interleaved_write_frame is fail to work or just crash.
    Maybe...
    AudioRecord Sample format is not equals to FFMPEG setting
    Frame receive is not equals

    So code... AudioRecorder
    http://pastebin.com/iWtB3Jhy
    package com.curtis.broadcaster.Publisher ;

    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.media.AudioFormat;
    import android.media.AudioRecord;
    import android.media.AudioRecord.OnRecordPositionUpdateListener;
    import android.media.MediaRecorder;
    import android.os.Bundle;
    import android.util.Log;

    public class Publisher extends Activity {
       private int mAudioBufferSize;
       private int mAudioBufferSampleSize;
       private AudioRecord mAudioRecord;
       private boolean inRecordMode = false;
       private short[] audioBuffer;
       private String Tag = "Publisher/Publisher.java";

       public void onCreate(Bundle savedInstanceState) {
           Log.i(Tag, "|| onCreate()");
           super.onCreate(savedInstanceState);
           initAudioRecord();
           Log.i(Tag, "-- End onCreate()");
       }

       @Override
       public void onResume() {
           Log.i(Tag, "|| onResume()");
           super.onResume();
           inRecordMode = true;
           Thread t = new Thread(new Runnable() {

               public void run() {
                   Log.i(Tag, "|| Run Threat t");
                   getSamples();
                   Log.i(Tag, "-- End Threat t");
               }
           });
           t.start();
           Log.i(Tag, "-- End onResume()");
       }

       protected void onPause() {
           Log.i(Tag, "|| Run onPause()");
           inRecordMode = false;
           super.onPause();
           Log.i(Tag, "-- End onPause()");
       }

       @Override
       protected void onDestroy() {
           Log.i(Tag, "|| Run onDestroy()");
           if (mAudioRecord != null) {
               mAudioRecord.release();
               Log.i(Tag + " onDestroy", "mAudioRecord.release()");
           }
           jniStopAll();
           super.onDestroy();
           android.os.Process.killProcess(android.os.Process.myPid());
           Log.i(Tag, "-- End onDestroy()");
       }

       public OnRecordPositionUpdateListener mListener = new OnRecordPositionUpdateListener() {

           public void onPeriodicNotification(AudioRecord recorder) {
               Log.i(Tag + " mListener(onPeriodicNotification)", "time is "
                       + System.currentTimeMillis());
               jniSetAudioSample(audioBuffer);
           //  audioBuffer = new short[mAudioBufferSampleSize];
           }

           public void onMarkerReached(AudioRecord recorder) {
               Log.i(Tag + " mListener(onMarkerReached)",
                       "time is " + System.currentTimeMillis());
               inRecordMode = false;
               recorder.stop();
               Log.i(Tag, "recorder.stop()");
           }
       };

       private void initAudioRecord() {
           try {
               jniCheck();
               int sampleRate = 44100;
               int channelConfig = AudioFormat.CHANNEL_IN_MONO;
               int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
               mAudioBufferSize = 2 * AudioRecord.getMinBufferSize(sampleRate,
                       channelConfig, audioFormat);
               mAudioBufferSampleSize = mAudioBufferSize / 2;
               Log.i(Tag, "Buffer Size " + mAudioBufferSize);
               Log.i(Tag, "new AudioRecord begin");

               mAudioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                       sampleRate, channelConfig, audioFormat, mAudioBufferSize);
               Log.i(Tag, "new AudioRecord end");

               jniInitFFMpeg();
           } catch (IllegalArgumentException e) {
               Log.i(Tag, "initAudioRecord go Errors");
               e.printStackTrace();
           }

           // mAudioRecord.setNotificationMarkerPosition(10000);
           mAudioRecord.setPositionNotificationPeriod(1024);
           mAudioRecord.setRecordPositionUpdateListener(mListener);

           int audioRecordState = mAudioRecord.getState();
           if (audioRecordState != AudioRecord.STATE_INITIALIZED) {
               finish();
           }

       }

       private void getSamples() {
           Log.i(Tag, "|| getSamples()");
           if (mAudioRecord == null)
               return;

           audioBuffer = new short[mAudioBufferSampleSize];
           mAudioRecord.startRecording();
           int audioRecordingState = mAudioRecord.getRecordingState();
           if (audioRecordingState != AudioRecord.RECORDSTATE_RECORDING) {
               finish();
           }
           while (inRecordMode) {
               int samplesRead = mAudioRecord.read(audioBuffer, 0,
                       mAudioBufferSampleSize);
               Log.i(Tag, "getSamples >>SamplesRead : " + samplesRead);
           }
           mAudioRecord.stop();
           Log.i(Tag, "mAudioRecord.stop()");
       }

       private native void jniCheck();

       private native void jniInitFFMpeg();

       private native void jniSetAudioSample(short[] audioBuffer);

       private native void jniStopAll();

       static {
           System.loadLibrary("ffmpeg");
           System.loadLibrary("testerv4");

       }

    }

    FFMPEG JNI http://pastebin.com/hgPva35b

    #include
    #include <android></android>log.h>
    #include <android></android>bitmap.h>

    #include
    #include
    #include
    #include
    #include <sys></sys>time.h>
    #include "libavformat/rtsp.h"

    #include <libavutil></libavutil>mathematics.h>
    #include <libavformat></libavformat>avformat.h>
    #include <libavcodec></libavcodec>avcodec.h>
    #include <libswscale></libswscale>swscale.h>

    #undef exit
    /* Log System */
    #define  LOG_TAG    "FFMPEGSample - v4a"
    #define DEBUG_TAG   "FFMPEG-AUDIO PART"
    #define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
    #define  LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)

    /* 5 seconds stream duration */
    #define STREAM_DURATION   5.0
    #define STREAM_FRAME_RATE 25 /* 25 images/s */
    #define STREAM_NB_FRAMES  ((int)(STREAM_DURATION * STREAM_FRAME_RATE))
    #define STREAM_PIX_FMT      PIX_FMT_YUV420P /* default pix_fmt */
    #define VIDEO_CODEC_ID      CODEC_ID_FLV1
    #define AUDIO_CODEC_ID      CODEC_ID_AAC

    static int sws_flags = SWS_BICUBIC;
    int mode = 1; //1 = only audio, 2 = only video, 3 = both video and audio

    AVFormatContext *avForCtx;
    //AVFormatContext *oc;
    AVStream *audio_st, *video_st;
    double audio_pts, video_pts;
    int frameCount, audioFrameCount, start;
    char *url;

    /*Audio Declare*/
    float t, tincr, tincr2;
    int16_t *samples;
    uint8_t *audio_outbuf;
    int audio_outbuf_size;
    int audio_input_frame_size;

    AVFormatContext *createAVFormatContext();
    AVStream *add_audio_stream(AVFormatContext *oc, enum CodecID codec_id);
    void open_video(AVFormatContext *oc, AVStream *st);
    void open_audio(AVFormatContext *oc, AVStream *st);
    AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id);
    void write_audio_frame(AVFormatContext *oc, AVStream *st);
    void write_video_frame(AVFormatContext *oc, AVStream *st);
    void init();
    void setAudioSample(unsigned char *inSample[]);
    void stopAll();

    /*/////////////////////////////////JNI Bridge////////////////////////////////////// */
    void Java_com_curtis_broadcaster_Publisher_Publisher_jniCheck(JNIEnv* env,
           jobject this) {
       LOGI("-@ JNI work fine @-");
    }
    void Java_com_curtis_broadcaster_Publisher_Publisher_jniInitFFMpeg(JNIEnv* env,
           jobject this) {
       LOGI("-@ Init Encorder @-");

       /* initialize libavcodec, and register all codecs and formats */
       avcodec_init();
       avcodec_register_all();
       av_register_all();
       avformat_network_init(); //ERROR


       /* allocate the output media context */
       avForCtx = createAVFormatContext();
       frameCount = 1;
       audioFrameCount = 1;
       start = 0;

       /* add the audio and video streams using the default format codecs
        and initialize the codecs */
       video_st = NULL;
       audio_st = NULL;
       if (mode == 1 || mode == 3) {
           audio_st = add_audio_stream(avForCtx, AUDIO_CODEC_ID);
           LOGI("(Init Encorder) - addAudioStream");
       }
       if (mode == 2 || mode == 3) {
           video_st = add_video_stream(avForCtx, VIDEO_CODEC_ID);
           LOGI("(Init Encorder) - addVideoStream");

       }

       //  av_dump_format(avForCtx, 0, "rtsp://192.168.1.104/live/live", 1);
       LOGI("(Init Encorder) - Waiting to call open_*");

       if (audio_st) {
           open_audio(avForCtx, audio_st);
           LOGI("(Init Encorder) - open_audio");
       }

       if (video_st) {
           open_video(avForCtx, video_st);
           LOGI("(Init Encorder) - open_video");
       }

       av_write_header(avForCtx);
       LOGI("-@ Finish Init Encorder @-");

    }

    void Java_com_curtis_broadcaster_Publisher_Publisher_jniSetAudioSample(
           JNIEnv* env, jobject this, unsigned char *inSample[]) {
       if (audio_st) {
           LOGI("-@ Start setAudioSample @-");
           samples = (int16_t *) inSample;

           write_audio_frame(avForCtx, audio_st);
           LOGI("-@ Finish setAudioSample @-");
       }
    }

    void Java_com_curtis_broadcaster_Publisher_Publisher_jniStopAll(JNIEnv* env,
           jobject this) {
       LOGI("-@ Stopping All @-");
       //close_audio(avForCtx, audio_st);
       //close_video(avForCtx, video_st);
       LOGI("-@ Stopped All @-");
    }
    /*/////////////////////////////END JNI Bridge////////////////////////////////////// */

    /* New Added Coding */
    AVFormatContext *createAVFormatContext() {
       LOGI("-@OPEN - createAVFormatContext@-");

       AVFormatContext *ctx = avformat_alloc_context();
       //  ctx->oformat = av_guess_format("flv", "rtmp://192.168.1.104/live/live",
       //      NULL);
       //  ctx->oformat = av_guess_format("flv", NULL, NULL);

       //if (!av_guess_format("flv", NULL, NULL)) {

       //LOGI("-flv Can not Guess Format-");
       //}

       ctx->oformat = av_guess_format("rtsp", NULL, NULL);

       if (!av_guess_format("rtsp", NULL, NULL)) {

           LOGI("-flv Can not Guess Format-");
       }

       /*
        LOGI("%d",avformat_alloc_output_context2(&amp;ctx, ctx->oformat, "flv",
        "rtmp://192.168.1.104/live/live"));
        if (!ctx) {
        LOGI("-@avformat_alloc_output_context2 fail@-");
        }*/
       //   LOGI("flv %d",avformat_alloc_output_context2(&amp;ctx, ctx->oformat, "flv",
       //   "rtmp://192.168.1.104/live/live"));
       //   LOGI("rtmp %d",avformat_alloc_output_context2(&amp;ctx, ctx->oformat, "rtmp",
       //   "rtmp://192.168.1.104/live/live"));
       //   LOGI("mpeg4 %d",avformat_alloc_output_context2(&amp;ctx, ctx->oformat, "mpeg4",
       //   "rtmp://192.168.1.104/live/live"));
       //   LOGI("NULL %d",avformat_alloc_output_context2(&amp;ctx, ctx->oformat, NULL,
       //   "rtmp://192.168.1.104/live/live"));
       avformat_alloc_output_context2(&amp;ctx, ctx->oformat, "sdp",
               "rtsp://192.168.1.104:1935/live/live");

       if (!ctx) {
           LOGI("-@avformat_alloc_output_context2 fail@-");
       }

       LOGI("-@CLOSE - createAVFormatContext@-");

       return ctx;
    }

    /**************************************************************/
    /* audio output */

    /*
    * add an audio output stream
    */
    AVStream *add_audio_stream(AVFormatContext *oc, enum CodecID codec_id) {
       LOGI("-@OPEN - add_audio_stream@-");

       AVCodecContext *c;
       AVStream *st = avformat_new_stream(oc, avcodec_find_encoder(codec_id));

       if (!st) {
           LOGI("-@add_audio_stream - Could not alloc stream@-");
           exit(1);
       }
       st->id = 1;

       c = st->codec;
       c->codec_id = AUDIO_CODEC_ID;
       c->codec_type = AVMEDIA_TYPE_AUDIO;

       /* put sample parameters */
       c->sample_fmt = AV_SAMPLE_FMT_FLT;
       //c->sample_fmt = AV_SAMPLE_FMT_S16;
       c->bit_rate = 100000;
       c->sample_rate = 44100;
       c->channels = 1;

       // some formats want stream headers to be separate
       if (oc->oformat->flags &amp; AVFMT_GLOBALHEADER)
           c->flags |= CODEC_FLAG_GLOBAL_HEADER;
       LOGI("-@Close - add_audio_stream@-");

       return st;
    }

    void open_audio(AVFormatContext *oc, AVStream *st) {
       LOGI("@- open_audio -@");

       AVCodecContext *c;
       AVCodec *codec;

       c = st->codec;
       c->strict_std_compliance = -2;
       /* find the audio encoder */
       codec = avcodec_find_encoder(c->codec_id);
       if (!codec) {
           LOGI("@- open_audio E:codec not found-@");
           exit(1);
       }

       /* open it */
       if (avcodec_open(c, codec) &lt; 0) {
           LOGI("%d",avcodec_open(c, codec));
           LOGI("@- open_audio E:could not open codec-@");
           exit(1);
       }

       /* init signal generator */
       t = 0;
       tincr = 2 * M_PI * 110.0 / c->sample_rate;
       /* increment frequency by 110 Hz per second */
       tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate;

       audio_outbuf_size = 10000;
       audio_outbuf = av_malloc(audio_outbuf_size);

       /* ugly hack for PCM codecs (will be removed ASAP with new PCM
        support to compute the input frame size in samples */
       if (c->frame_size &lt;= 1) {
           audio_input_frame_size = audio_outbuf_size / c->channels;
           switch (st->codec->codec_id) {
           case CODEC_ID_PCM_S16LE:
           case CODEC_ID_PCM_S16BE:
           case CODEC_ID_PCM_U16LE:
           case CODEC_ID_PCM_U16BE:
               audio_input_frame_size >>= 1;
               break;
           default:
               break;
           }
       } else {
           audio_input_frame_size = c->frame_size;
       }
       LOGI("audio_input_frame_size : %d",audio_input_frame_size);
       samples = av_malloc(audio_input_frame_size * 2 * c->channels);
       LOGI("@- Close open_audio -@");

    }

    /* prepare a 16 bit dummy audio frame of &#39;frame_size&#39; samples and
    &#39;nb_channels&#39; channels */
    void get_audio_frame(int16_t *samples, int frame_size, int nb_channels) {
       LOGI("@- get_audio_frame -@");

       int j, i, v;
       int16_t *q;

       q = samples;
       for (j = 0; j &lt; frame_size; j++) {
           v = (int) (sin(t) * 10000);
           for (i = 0; i &lt; nb_channels; i++)
               *q++ = v;
           t += tincr;
           tincr += tincr2;
           LOGI("@- audio_frame Looping -@");
       }
       LOGI("@- CLOSE get_audio_frame -@");

    }

    void write_audio_frame(AVFormatContext *oc, AVStream *st) {
       LOGI("@- write_audio_frame -@");

       AVCodecContext *c;
       AVPacket pkt;
       av_init_packet(&amp;pkt);

       c = st->codec;

       //get_audio_frame(samples, audio_input_frame_size, c->channels);
       LOGI("@- write_audio_frame : got frame from get_audio_frame -@");

       pkt.size
               = avcodec_encode_audio(c, audio_outbuf, audio_outbuf_size, samples);
       LOGI("%d",pkt.size);

       if (c->coded_frame &amp;&amp; c->coded_frame->pts != AV_NOPTS_VALUE)
           pkt.pts
                   = av_rescale_q(c->coded_frame->pts, c->time_base, st->time_base);
       LOGI("%d",pkt.pts);

       pkt.flags |= AV_PKT_FLAG_KEY;
       pkt.stream_index = st->index;
       pkt.data = audio_outbuf;
       LOGI("Finish PKT");

       /* write the compressed frame in the media file */
       //  if (av_interleaved_write_frame(oc, &amp;pkt) != 0) {
       //  LOGI("@- write_audio_frame E:Error while writing audio frame -@");
       //  exit(1);
       //  }

       if (av_interleaved_write_frame(oc, &amp;pkt) != 0) {
           LOGI("Error while writing audio frame %d\n", audioFrameCount);
       } else {
           LOGI("Writing Audio Frame %d", audioFrameCount);
       }

       LOGI("@- CLOSE write_audio_frame -@");
       audioFrameCount++;
       av_free_packet(&amp;pkt);
    }

    void close_audio(AVFormatContext *oc, AVStream *st) {
       avcodec_close(st->codec);

       av_free(samples);
       av_free(audio_outbuf);
    }

    /**************************************************************/
    /* video output */

    AVFrame *picture, *tmp_picture;
    uint8_t *video_outbuf;
    int frame_count, video_outbuf_size;

    /* add a video output stream */
    AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id) {
       AVCodecContext *c;
       AVStream *st;
       AVCodec *codec;

       st = avformat_new_stream(oc, NULL);
       if (!st) {
           fprintf(stderr, "Could not alloc stream\n");
           exit(1);
       }

       c = st->codec;

       /* find the video encoder */
       codec = avcodec_find_encoder(codec_id);
       if (!codec) {
           fprintf(stderr, "codec not found\n");
           exit(1);
       }
       avcodec_get_context_defaults3(c, codec);

       c->codec_id = codec_id;

       /* put sample parameters */
       c->bit_rate = 400000;
       /* resolution must be a multiple of two */
       c->width = 352;
       c->height = 288;
       /* time base: this is the fundamental unit of time (in seconds) in terms
        of which frame timestamps are represented. for fixed-fps content,
        timebase should be 1/framerate and timestamp increments should be
        identically 1. */
       c->time_base.den = STREAM_FRAME_RATE;
       c->time_base.num = 1;
       c->gop_size = 12; /* emit one intra frame every twelve frames at most */
       c->pix_fmt = STREAM_PIX_FMT;
       if (c->codec_id == CODEC_ID_MPEG2VIDEO) {
           /* just for testing, we also add B frames */
           c->max_b_frames = 2;
       }
       if (c->codec_id == CODEC_ID_MPEG1VIDEO) {
           /* Needed to avoid using macroblocks in which some coeffs overflow.
            This does not happen with normal video, it just happens here as
            the motion of the chroma plane does not match the luma plane. */
           c->mb_decision = 2;
       }
       // some formats want stream headers to be separate
       if (oc->oformat->flags &amp; AVFMT_GLOBALHEADER)
           c->flags |= CODEC_FLAG_GLOBAL_HEADER;

       return st;
    }

    AVFrame *alloc_picture(enum PixelFormat pix_fmt, int width, int height) {
       AVFrame * picture;
       uint8_t *picture_buf;
       int size;

       picture = avcodec_alloc_frame();
       if (!picture)
           return NULL;
       size = avpicture_get_size(pix_fmt, width, height);
       picture_buf = av_malloc(size);
       if (!picture_buf) {
           av_free(picture);
           return NULL;
       }
       avpicture_fill((AVPicture *) picture, picture_buf, pix_fmt, width, height);
       return picture;
    }

    void open_video(AVFormatContext *oc, AVStream *st) {
       AVCodec *codec;
       AVCodecContext *c;

       c = st->codec;

       /* find the video encoder */
       codec = avcodec_find_encoder(c->codec_id);
       if (!codec) {
           fprintf(stderr, "codec not found\n");
           exit(1);
       }

       /* open the codec */
       if (avcodec_open(c, codec) &lt; 0) {
           fprintf(stderr, "could not open codec\n");
           exit(1);
       }

       video_outbuf = NULL;
       if (!(oc->oformat->flags &amp; AVFMT_RAWPICTURE)) {
           /* allocate output buffer */
           /* XXX: API change will be done */
           /* buffers passed into lav* can be allocated any way you prefer,
            as long as they&#39;re aligned enough for the architecture, and
            they&#39;re freed appropriately (such as using av_free for buffers
            allocated with av_malloc) */
           video_outbuf_size = 200000;
           video_outbuf = av_malloc(video_outbuf_size);
       }

       /* allocate the encoded raw picture */
       picture = alloc_picture(c->pix_fmt, c->width, c->height);
       if (!picture) {
           fprintf(stderr, "Could not allocate picture\n");
           exit(1);
       }

       /* if the output format is not YUV420P, then a temporary YUV420P
        picture is needed too. It is then converted to the required
        output format */
       tmp_picture = NULL;
       if (c->pix_fmt != PIX_FMT_YUV420P) {
           tmp_picture = alloc_picture(PIX_FMT_YUV420P, c->width, c->height);
           if (!tmp_picture) {
               fprintf(stderr, "Could not allocate temporary picture\n");
               exit(1);
           }
       }
    }

    /* prepare a dummy image */
    void fill_yuv_image(AVFrame *pict, int frame_index, int width, int height) {
       int x, y, i;

       i = frame_index;

       /* Y */
       for (y = 0; y &lt; height; y++) {
           for (x = 0; x &lt; width; x++) {
               pict->data[0][y * pict->linesize[0] + x] = x + y + i * 3;
           }
       }

       /* Cb and Cr */
       for (y = 0; y &lt; height / 2; y++) {
           for (x = 0; x &lt; width / 2; x++) {
               pict->data[1][y * pict->linesize[1] + x] = 128 + y + i * 2;
               pict->data[2][y * pict->linesize[2] + x] = 64 + x + i * 5;
           }
       }
    }

    void write_video_frame(AVFormatContext *oc, AVStream *st) {
       int out_size, ret;
       AVCodecContext *c;
       struct SwsContext *img_convert_ctx;

       c = st->codec;

       if (frame_count >= STREAM_NB_FRAMES) {
           /* no more frame to compress. The codec has a latency of a few
            frames if using B frames, so we get the last frames by
            passing the same picture again */
       } else {
           if (c->pix_fmt != PIX_FMT_YUV420P) {
               /* as we only generate a YUV420P picture, we must convert it
                to the codec pixel format if needed */
               if (img_convert_ctx == NULL) {
                   img_convert_ctx = sws_getContext(c->width, c->height,
                           PIX_FMT_YUV420P, c->width, c->height, c->pix_fmt,
                           sws_flags, NULL, NULL, NULL);
                   if (img_convert_ctx == NULL) {
                       fprintf(stderr,
                               "Cannot initialize the conversion context\n");
                       exit(1);
                   }
               }
               fill_yuv_image(tmp_picture, frame_count, c->width, c->height);
               sws_scale(img_convert_ctx, tmp_picture->data,
                       tmp_picture->linesize, 0, c->height, picture->data,
                       picture->linesize);
           } else {
               fill_yuv_image(picture, frame_count, c->width, c->height);
           }
       }

       if (oc->oformat->flags &amp; AVFMT_RAWPICTURE) {
           /* raw video case. The API will change slightly in the near
            future for that. */
           AVPacket pkt;
           av_init_packet(&amp;pkt);

           pkt.flags |= AV_PKT_FLAG_KEY;
           pkt.stream_index = st->index;
           pkt.data = (uint8_t *) picture;
           pkt.size = sizeof(AVPicture);

           ret = av_interleaved_write_frame(oc, &amp;pkt);
       } else {
           /* encode the image */
           out_size = avcodec_encode_video(c, video_outbuf, video_outbuf_size,
                   picture);
           /* if zero size, it means the image was buffered */
           if (out_size > 0) {
               AVPacket pkt;
               av_init_packet(&amp;pkt);

               if (c->coded_frame->pts != AV_NOPTS_VALUE)
                   pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base,
                           st->time_base);
               if (c->coded_frame->key_frame)
                   pkt.flags |= AV_PKT_FLAG_KEY;
               pkt.stream_index = st->index;
               pkt.data = video_outbuf;
               pkt.size = out_size;

               /* write the compressed frame in the media file */
               ret = av_interleaved_write_frame(oc, &amp;pkt);
           } else {
               ret = 0;
           }
       }
       if (ret != 0) {
           fprintf(stderr, "Error while writing video frame\n");
           exit(1);
       }
       frame_count++;
    }

    void close_video(AVFormatContext *oc, AVStream *st) {
       avcodec_close(st->codec);
       av_free(picture->data[0]);
       av_free(picture);
       if (tmp_picture) {
           av_free(tmp_picture->data[0]);
           av_free(tmp_picture);
       }
       av_free(video_outbuf);
    }

    Android Manifest has been set and init everything.
    Please give me some ideas..
    Some log message to yours http://pastebin.com/uPD5LyH2