Recherche avancée

Médias (1)

Mot : - Tags -/wave

Autres articles (108)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

Sur d’autres sites (13487)

  • Issue in CV_FOURCC('H', '2', '6', '4')

    16 décembre 2014, par Ashwin

    I am trying to use H264 encoding type for compressing the live streaming from Camera (which is supporting the H264 codec) am getting below -
    [I am using OPENCV 3.0 beta version (latest)in windows 7 64 bit system .My camera is also supporting H264 codec (find more details below) ]
    My ffmpeg code got built with h264 lib :
    This build was compiled with the following external libraries :
    x264 20140826-git-dd79a61 http://videolan.org/developers/x264.html

    **error :**

    Frame size = 1280x720
    Could not find encoder for codec id 28: Encoder not foundERROR: Failed to write the video
    Press any key to continue . . .

    Below is my code :

    int main(int argc, char *argv[])
    {
    // QApplication a(argc, argv);

     VideoCapture cap(0); //capture webcam

     if (!cap.isOpened()) //if not successful then exit
     {
       cout << "Cannot open webcam";
       return -1;
     }

     namedWindow("Camera feed", 1); //create window

     cap.set(3, 1280);
     cap.set(4, 720);

     double dWidth  = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get width of frames of video
     double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get height of frames of video    


     Size frameSize(static_cast<int>(dWidth), static_cast<int>(dHeight));

     cout &lt;&lt; "Frame size = " &lt;&lt; dWidth &lt;&lt; "x" &lt;&lt; dHeight &lt;&lt; endl;

     VideoWriter oVideoWriter("video.avi", CV_FOURCC('X', '2', '6', '4'), 30, frameSize);

     if(!oVideoWriter.isOpened())
     {
       cout &lt;&lt; "ERROR: Failed to write the video" &lt;&lt; endl;
       return -1;
     }
     while(1)
     {
       Mat frame;
       bool bSuccess = cap.read(frame); //read a new frame from video

       if(!bSuccess) //if unsuccessful, break loop
       {
           cout &lt;&lt; "Cannot read frame from video file" &lt;&lt; endl;
           break;
       }

       oVideoWriter.write(frame); //write the frame into the file
       imshow("Camera feed", frame); //show the frame in "Live Feed" window

       cout &lt;&lt; "Recording" &lt;&lt; endl;

       if (waitKey(30) == 27)

       {
         cout&lt;&lt; "Esc key is pressed by user" &lt;&lt; endl;
         break;
       }

     }
     return 0;
    }
    </int></int>

    Here is the proof that my camera is supporting the H264 :

    C:\Users>ffmpeg -f dshow -list_options true -i video="Logitech HD Pro Webcam C920"
    ffmpeg version N-66116-g720c21d Copyright (c) 2000-2014 the FFmpeg developers
     built on Sep  4 2014 22:09:48 with gcc 4.8.3 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
     libavutil      54.  7.100 / 54.  7.100
     libavcodec     56.  1.100 / 56.  1.100
     libavformat    56.  4.100 / 56.  4.100
     libavdevice    56.  0.100 / 56.  0.100
     libavfilter     5.  0.103 /  5.  0.103
     libswscale      3.  0.100 /  3.  0.100
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  0.100 / 53.  0.100
    [dshow @ 0000000002faf680] DirectShow video device options
    [dshow @ 0000000002faf680]  Pin "Capture"
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=640x480 fps=5 max s=640x480 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=160x90 fps=5 max s=160x90 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=160x120 fps=5 max s=160x120 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=176x144 fps=5 max s=176x144 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=320x180 fps=5 max s=320x180 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=320x240 fps=5 max s=320x240 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=352x288 fps=5 max s=352x288 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=432x240 fps=5 max s=432x240 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=640x360 fps=5 max s=640x360 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=800x448 fps=5 max s=800x448 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=800x600 fps=5 max s=800x600 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=864x480 fps=5 max s=864x480 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=960x720 fps=5 max s=960x720 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=1024x576 fps=5 max s=1024x576 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=1280x720 fps=5 max s=1280x720 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=1600x896 fps=5 max s=1600x896 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=1920x1080 fps=5 max s=1920x1080 fps=30
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=2304x1296 fps=2 max s=2304x1296 fps=2
    [dshow @ 0000000002faf680]   pixel_format=bgr24  min s=2304x1536 fps=2 max s=2304x1536 fps=2
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=640x480 fps=5 max s=640x480 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=160x90 fps=5 max s=160x90 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=160x120 fps=5 max s=160x120 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=176x144 fps=5 max s=176x144 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=320x180 fps=5 max s=320x180 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=320x240 fps=5 max s=320x240 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=352x288 fps=5 max s=352x288 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=432x240 fps=5 max s=432x240 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=640x360 fps=5 max s=640x360 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=800x448 fps=5 max s=800x448 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=800x600 fps=5 max s=800x600 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=864x480 fps=5 max s=864x480 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=960x720 fps=5 max s=960x720 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=1024x576 fps=5 max s=1024x576 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=1280x720 fps=5 max s=1280x720 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=1600x896 fps=5 max s=1600x896 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=1920x1080 fps=5 max s=1920x1080 fps=30
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=2304x1296 fps=2 max s=2304x1296 fps=2
    [dshow @ 0000000002faf680]   pixel_format=yuv420p  min s=2304x1536 fps=2 max s=2304x1536 fps=2
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=640x480 fps=5 max s=640x480 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=160x90 fps=5 max s=160x90 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=160x120 fps=5 max s=160x120 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=176x144 fps=5 max s=176x144 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=320x180 fps=5 max s=320x180 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=320x240 fps=5 max s=320x240 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=352x288 fps=5 max s=352x288 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=432x240 fps=5 max s=432x240 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=640x360 fps=5 max s=640x360 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=800x448 fps=5 max s=800x448 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=800x600 fps=5 max s=800x600 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=864x480 fps=5 max s=864x480 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=960x720 fps=5 max s=960x720 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=1024x576 fps=5 max s=1024x576 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=1280x720 fps=5 max s=1280x720 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=1600x896 fps=5 max s=1600x896 fps=30
    [dshow @ 0000000002faf680]   vcodec=mjpeg  min s=1920x1080 fps=5 max s=1920x1080 fps=30
    [dshow @ 0000000002faf680]  Pin "Capture"
    [dshow @ 0000000002faf680]   vcodec=h264  min s=640x480 fps=5 max s=640x480 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=160x90 fps=5 max s=160x90 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=160x120 fps=5 max s=160x120 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=176x144 fps=5 max s=176x144 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=320x180 fps=5 max s=320x180 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=320x240 fps=5 max s=320x240 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=352x288 fps=5 max s=352x288 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=432x240 fps=5 max s=432x240 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=640x360 fps=5 max s=640x360 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=800x448 fps=5 max s=800x448 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=800x600 fps=5 max s=800x600 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=864x480 fps=5 max s=864x480 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=960x720 fps=5 max s=960x720 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=1024x576 fps=5 max s=1024x576 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=1280x720 fps=5 max s=1280x720 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=1600x896 fps=5 max s=1600x896 fps=30
    [dshow @ 0000000002faf680]   vcodec=h264  min s=1920x1080 fps=5 max s=1920x1080 fps=30
    video=Logitech HD Pro Webcam C920: Immediate exit requested
  • FFMPEG output (Images > Video) is unplayable

    23 décembre 2014, par jgads

    I’m using FFMPEG to make a video slideshow from a group of images on Android. The process completes successfully and the output file is the correct/expected size (or the same as what is reported in FFMPEG’s ’progress’), but the video does not play on any Android video player (MXplayer, VLC, stock). The video players show a perpetual loading circle and never actually launch. MXplayer can see the file and generate a thumbnail but not actually play it. Here is the command :

    ffmpeg -f image2 -re -r 1 -i
    /storage/emulated/0/Pictures/phototest/%d.jpg -vcodec libx264 -f mp4
    -r 24 -preset : ultrafast -an -threads 4 -b 4000k -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -y -pix_fmt yuv420p /storage/emulated/0/Pictures/phototest/result1.mp4

    Here’s the output via Android Logcat :

    12-23 12:59:49.890  12665-12665/com.company.example I/FFmpeg﹕ Loading FFmpeg for armv7-neon CPU
    12-23 12:59:50.210  12665-12665/com.company.example E/FFMPEG﹕ Success loading ffmpeg
    12-23 12:59:54.420  12665-12665/com.company.example E/FFMPEG﹕ Started.
    12-23 12:59:54.445  12665-12799/com.company.example D/FFmpeg﹕ Running publishing updates method
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress: ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavutil      54.  7.100 / 54.  7.100
    12-23 12:59:54.465  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavcodec     56.  1.100 / 56.  1.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavformat    56.  4.101 / 56.  4.101
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavdevice    56.  0.100 / 56.  0.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libavfilter     5.  1.100 /  5.  1.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libswscale      3.  0.100 /  3.  0.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libswresample   1.  1.100 /  1.  1.100
    12-23 12:59:54.470  12665-12665/com.company.example E/FFMPEG﹕ Progress:   libpostproc    53.  0.100 / 53.  0.100
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress: Input #0, image2, from '/storage/emulated/0/Pictures/phototest/%d.jpg':
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress:   Duration: 00:00:28.00, start: 0.000000, bitrate: N/A
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress:     Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg), 2528x1856 [SAR 1:1 DAR 79:58], 1 fps, 1 tbr, 1 tbn, 1 tbc
    12-23 12:59:54.655  12665-12665/com.company.example E/FFMPEG﹕ Progress: Please use -b:a or -b:v, -b is ambiguous
    12-23 12:59:54.665  12665-12665/com.company.example E/FFMPEG﹕ Progress: [swscaler @ 0x2b3f7990] deprecated pixel format used, make sure you did set range correctly
    12-23 12:59:54.670  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] using SAR=1/1
    12-23 12:59:54.685  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] using cpu capabilities: none!
    12-23 12:59:54.755  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] profile Constrained Baseline, level 5.0
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=0 trellis=2 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=300 keyint_min=24 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: Output #0, mp4, to '/storage/emulated/0/Pictures/phototest/result1.mp4':
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:   Metadata:
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:     encoder         : Lavf56.4.101
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:     Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 2528x1856 [SAR 1:1 DAR 79:58], q=-1--1, 4000 kb/s, 24 fps, 12288 tbn, 24 tbc
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:     Metadata:
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:       encoder         : Lavc56.1.100 libx264
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: Stream mapping:
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress:   Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    12-23 12:59:54.760  12665-12665/com.company.example E/FFMPEG﹕ Progress: Press [q] to stop, [?] for help
    12-23 13:00:03.905  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=   49 fps= 11 q=17.0 size=     840kB time=00:00:01.83 bitrate=3752.6kbits/s dup=46 drop=0
    12-23 13:00:11.185  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=   73 fps=8.0 q=17.0 size=    1397kB time=00:00:02.83 bitrate=4039.0kbits/s dup=69 drop=0
    12-23 13:00:17.615  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=   97 fps=5.9 q=17.0 size=    1931kB time=00:00:03.83 bitrate=4126.8kbits/s dup=92 drop=0
    12-23 13:00:22.545  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  121 fps=5.3 q=17.0 size=    2496kB time=00:00:04.83 bitrate=4229.6kbits/s dup=115 drop=0
    12-23 13:00:27.630  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  145 fps=5.2 q=17.0 size=    3089kB time=00:00:05.83 bitrate=4338.5kbits/s dup=138 drop=0
    12-23 13:00:33.005  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  169 fps=5.1 q=17.0 size=    3702kB time=00:00:06.83 bitrate=4437.9kbits/s dup=161 drop=0
    12-23 13:00:37.840  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  193 fps=5.0 q=18.0 size=    4316kB time=00:00:07.83 bitrate=4514.1kbits/s dup=184 drop=0
    12-23 13:00:43.345  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  217 fps=5.0 q=18.0 size=    4848kB time=00:00:08.83 bitrate=4495.6kbits/s dup=207 drop=0
    12-23 13:00:48.155  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  241 fps=5.0 q=18.0 size=    5304kB time=00:00:09.83 bitrate=4418.5kbits/s dup=230 drop=0
    12-23 13:00:52.930  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  265 fps=5.0 q=19.0 size=    5874kB time=00:00:10.83 bitrate=4441.8kbits/s dup=253 drop=0
    12-23 13:00:57.210  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  289 fps=5.0 q=18.0 size=    6205kB time=00:00:11.83 bitrate=4295.9kbits/s dup=276 drop=0
    12-23 13:01:01.415  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  313 fps=5.0 q=18.0 size=    6747kB time=00:00:12.83 bitrate=4307.0kbits/s dup=299 drop=0
    12-23 13:01:05.315  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  337 fps=5.1 q=18.0 size=    7126kB time=00:00:13.83 bitrate=4220.0kbits/s dup=322 drop=0
    12-23 13:01:09.935  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  361 fps=5.1 q=17.0 size=    7522kB time=00:00:14.83 bitrate=4153.9kbits/s dup=345 drop=0
    12-23 13:01:14.755  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  385 fps=5.1 q=18.0 size=    8072kB time=00:00:15.83 bitrate=4176.2kbits/s dup=368 drop=0
    12-23 13:01:19.505  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  409 fps=5.1 q=18.0 size=    8618kB time=00:00:16.83 bitrate=4193.9kbits/s dup=391 drop=0
    12-23 13:01:23.630  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  433 fps=5.1 q=17.0 size=    9074kB time=00:00:17.83 bitrate=4168.4kbits/s dup=414 drop=0
    12-23 13:01:27.580  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  457 fps=5.1 q=17.0 size=    9423kB time=00:00:18.83 bitrate=4098.7kbits/s dup=437 drop=0
    12-23 13:01:32.210  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  481 fps=5.2 q=17.0 size=    9908kB time=00:00:19.83 bitrate=4092.4kbits/s dup=460 drop=0
    12-23 13:01:36.140  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  505 fps=5.2 q=16.0 size=   10238kB time=00:00:20.83 bitrate=4025.6kbits/s dup=483 drop=0
    12-23 13:01:41.165  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  529 fps=5.2 q=16.0 size=   10758kB time=00:00:21.83 bitrate=4036.4kbits/s dup=506 drop=0
    12-23 13:01:46.065  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  553 fps=5.2 q=16.0 size=   11214kB time=00:00:22.83 bitrate=4023.2kbits/s dup=529 drop=0
    12-23 13:01:51.290  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  577 fps=5.2 q=16.0 size=   11836kB time=00:00:23.83 bitrate=4068.4kbits/s dup=552 drop=0
    12-23 13:01:57.560  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  601 fps=5.2 q=17.0 size=   12537kB time=00:00:24.83 bitrate=4135.6kbits/s dup=575 drop=0
    12-23 13:02:02.735  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  625 fps=5.1 q=18.0 size=   13864kB time=00:00:25.83 bitrate=4396.6kbits/s dup=598 drop=0
    12-23 13:02:06.810  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  649 fps=5.1 q=18.0 size=   14322kB time=00:00:26.83 bitrate=4372.3kbits/s dup=621 drop=0
    12-23 13:02:06.815  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  649 fps=4.9 q=18.0 size=   14322kB time=00:00:26.83 bitrate=4372.3kbits/s dup=621 drop=0
    12-23 13:02:07.355  12665-12665/com.company.example E/FFMPEG﹕ Progress: frame=  649 fps=4.9 q=-1.0 Lsize=   14349kB time=00:00:27.04 bitrate=4346.9kbits/s dup=621 drop=0
    12-23 13:02:07.355  12665-12665/com.company.example E/FFMPEG﹕ Progress: video:14345kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.024813%
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] frame I:3     Avg QP:21.67  size:383361
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] frame P:646   Avg QP:18.87  size: 20958
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] mb I  I16..4: 100.0%  0.0%  0.0%
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] mb P  I16..4:  4.4%  0.0%  0.0%  P16..4: 19.5%  0.0%  0.0%  0.0%  0.0%    skip:76.0%
    12-23 13:02:07.360  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] final ratefactor: 26.82
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] coded y,uvDC,uvAC intra: 42.8% 45.6% 9.2% inter: 3.4% 16.7% 0.1%
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] i16 v,h,dc,p: 36% 24% 22% 19%
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] i8c dc,h,v,p: 51% 22% 19%  7%
    12-23 13:02:07.370  12665-12665/com.company.example E/FFMPEG﹕ Progress: [libx264 @ 0x2b4012e0] kb/s:4345.62
    12-23 13:02:07.400  12665-12665/com.company.example E/FFMPEG﹕ Success: ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
    built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
    configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
    libavutil      54.  7.100 / 54.  7.100
    libavcodec     56.  1.100 / 56.  1.100
    libavformat    56.  4.101 / 56.  4.101
    libavdevice    56.  0.100 / 56.  0.100
    libavfilter     5.  1.100 /  5.  1.100
    libswscale      3.  0.100 /  3.  0.100
    libswresample   1.  1.100 /  1.  1.100
    libpostproc    53.  0.100 / 53.  0.100
    Input #0, image2, from '/storage/emulated/0/Pictures/phototest/%d.jpg':
    Duration: 00:00:28.00, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg), 2528x1856 [SAR 1:1 DAR 79:58], 1 fps, 1 tbr, 1 tbn, 1 tbc
    Please use -b:a or -b:v, -b is ambiguous
    [swscaler @ 0x2b3f7990] deprecated pixel format used, make sure you did set range correctly
    [libx264 @ 0x2b4012e0] using SAR=1/1
    [libx264 @ 0x2b4012e0] using cpu capabilities: none!
    [libx264 @ 0x2b4012e0] profile Constrained Baseline, level 5.0
    [libx264 @ 0x2b4012e0] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=0 trellis=2 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=300 keyint_min=24 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    Output #0, mp4, to '/storage/emulated/0/Pictures/phototest/result1.mp4':
    Metadata:
    encoder         : Lavf56.4.101
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 2528x1856 [SAR 1:1 DAR 79:58], q=-1--1, 4000 kb/s, 24 fps, 12288 tbn, 24 tbc
    Metadata:
    encoder         : Lavc56.1.100 libx264
    Stream mapping:
    Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    frame=   49 fps= 11 q=17.0 size=     840kB time=00:00:01.83 bitrate=3752.6kbits/s dup=46 drop=0
    frame=   73 fps=8.0 q=17.0 size=    1397kB time=00:00:02.83 bitrate=4039.0kbits/s dup=69 drop=0
    frame=   97 fps=5.9 q=17.0 size=    1931kB time=00:00:03.83 bitrate=4126.8kbits/s dup=92 drop=0
    frame=  121 fps=5.3 q=17.0 size=    2496kB time=00:00:04.83 bitrate=4229.6kbits/s dup=115 drop=0
    frame=  145 fps=5.2 q=17.0 size=    3089kB time=00:00:05.83 bitrate=4338.5kbits/s dup=138 drop=0
    frame=  169 fps=5.1 q=17.0 size=    3702kB time=00:00:06.83 bitrate=4437.9kbits/s dup=161 drop=0
    frame=  193 fps=5.0 q=18.0 size=    4316kB time=00:00:07.83 bitrate=4514.1kbits/s dup=184 drop=0
    frame=  217 fps=5.0 q=18.0 size=    4848kB time=00:00:08.83 bitrate=4495.6kbits/s dup=207 drop=0
    frame=  241 fps=5.0 q=18.0 size=    5304kB time=00:00:09.83 bitrate=4418.5kbits/s dup=230 drop=0
    frame=  265 fps=5.0 q=19.0 size=    5874kB time=00:00:10.83 bitrate=4441.8kbits/s dup=253 drop=0
    frame=  28
    12-23 13:02:07.430  12665-12665/com.company.example E/FFMPEG﹕ Finished.

    EDIT : Note that although it appears to run ffmpeg twice here, the output file is the correct size which seems to mean that the file isn’t getting overwritten with a corrupt version, so we can probably just assume there’s a bug with Logcat (right ?)

    EDIT 2 : Trying the same command on the PC works flawlessly. Playing back this video works fine on Android.

  • Dreamcast SD Adapter and DreamShell

    31 décembre 2014, par Multimedia Mike — Sega Dreamcast

    Nope ! I’m never going to let go of the Sega Dreamcast hacking. When I was playing around with Dreamcast hacking early last year, I became aware that there is such a thing as an SD card adapter for the DC that plugs into the port normally reserved for the odd DC link cable. Of course I wanted to see what I could do with it.

    The primary software that leverages the DC SD adapter is called DreamShell. Working with this adapter and the software requires some skill and guesswork. Searching for these topics tends to turn up results from various forums where people are trying to cargo-cult their way to solutions. I have a strange feeling that this post might become the unofficial English-language documentation on the matter.

    Use Cases
    What can you do with this thing ? Undoubtedly, the primary use is for backing up (ripping) the contents of GD-ROMs (the custom optical format used for the DC) and playing those backed up (ripped) copies. Presumably, users of this device leverage the latter use case more than the former, i.e., download ripped games, load them on the SD card, and launch them using DreamShell.

    However, there are other uses such as multimedia playback, system exploration, BIOS reprogramming, high-level programming, and probably a few other things I haven’t figured out yet.

    Delivery
    I put in an order via the dc-sd.com website and in about 2 short months, the item arrived from China. This marked my third lifetime delivery from China and curiously, all 3 of the shipments have pertained to the Sega Dreamcast.


    Dreamcast SD Adapter package

    Click for larger image


    I thought it was very interesting that this adapter came in such complete packaging. The text is all in Chinese, though the back states “Windows 98 / ME / 2000 / XP, Mac OS 9.1, LINUX2.4”. That’s what tipped me off that they must have just cannibalized some old USB SD card readers and packaging in order to create these. Closer inspection of the internals through the translucent pink case confirms this.

    Usage
    According to its change log, DreamShell has been around for a long time with version 1.0.0 released in February of 2004. The current version is 4.0.0 RC3. There are several downloads available :

    1. DreamShell 4.0 RC 3 CDI Image
    2. DreamShell 4.0 RC 3 + Boot Loader
    3. DreamShell 4.0 RC 3 + Core CDI image

    Option #2 worked for me. It contains a CDI disc image and the DreamShell files in a directory named DS/.

    Burn the CDI to a CD-R in the normal way you would burn a bootable Dreamcast disc from a CDI image. This is open-ended and left as an exercise to the reader, since there are many procedures depending on platform. On Linux, I used a small script I found once called burncdi-dc.sh.

    Then, copy the contents of the DS/ folder to an SD card. As for filesystem, FAT16 and FAT32 are both known to work. The files in DS/ should land in the root of the SD card ; the folder DS/ should not be in the root.

    Plug the SD card into the DC SD adapter and plug the adapter in the link cable port on the back of the Dreamcast. Then, boot the disc. If it works, you will see this minor corruption of the usual Sega licensing screen :


    DreamShell logo on Dreamcast startup

    Then, there will be a brief white-on-black text screen that explains the booting process :


    DreamShell booting text

    Then, there will be the main DreamShell logo :


    DreamShell logo

    Finally, you will land on the DreamShell main desktop :


    DreamShell 4.0.0 RC3 main desktop

    Skepticism
    At first, I was supremely skeptical of the idea that this SD adapter could perform speedily enough to play games reasonably. This was predicated on the observation that my DC coder’s cable that I used to use for homebrew development could not transfer faster than 115200 bits/second, amounting to about 11 kbytes/sec. I assumed that this was a fundamental limitation of the link port.

    In fact, I ripped a few of my Dreamcast discs over a decade ago and still have those rips lying around. So I copied the ISO image of Resident Evil : Code Veronica — the game I personally played most on the DC — to the SD card (anywhere works) and used the “ISO loader” icon seen on the desktop above to launch the game.

    It works :


    Resident Evil: Code Veronica title

    The opening FMV plays at full speed. Everything loads as fast as I remember. I was quite surprised.

    Digression : My assumptions about serial speeds have often been mistaken. 10 years ago, I heard stories about how we would soon be able to watch streaming video on our cell phones. I scoffed because I thought the 56K limitation of dialup modems was some sort of fundamental speed-of-light type of limitation for telephony bandwidth, wired or wireless.

    The desktop menu also includes a ‘speedtest’ tool that profiles the write and read performance of your preferred storage medium. For my fastest SD card (a PNY 2 GB card) :


    DreamShell speedtest utility

    This is probably more representative of the true adapter bandwidth as reading and writing is a good deal faster through more modern interfaces on PC and Mac with this same card.

    Look at the other options on the speedtest console. Hard drive ? Apparently, it’s possible, but it requires a good deal more hardware hacking than just purchasing this SD adapter.

    Ripping
    As you can see from the Resident Evil screenshot, playing games works quite nicely. How about ripping ? I’m pleased to say that DreamShell has a beautiful ripping interface :


    Ripping a GD-ROM using DreamShell

    Enter a name for the disc (or read the disc label), select the storage medium, and let it, well, rip. It indicates which track it’s working on and the Sega logo acts as a progress bar, shading blue as the track rip progresses.

    I’m finally, efficiently, archiving that collection of Sega Dreamcast demo discs ; I’m hoping they’ll eventually find a home at the Internet Archive. How is overall ripping performance ? Usually about 38-40 minutes to rip a full 900-1000 MB. That certainly beats the 27-28 hours that were required when I performed the ripping at 11 kbytes/sec via the DC coders cable.

    All is well until I get a sector reading error :


    DreamShell ripping error

    That’s when it can come in handy to have 3 DC consoles (see ?! not crazy !).

    Other Uses
    There’s a file explorer. You can browse the filesystem of the SD card, visual memory unit, or the CD portion of the GD-ROM (would be more useful if it accessed the GD area). There are FFmpeg files included. So I threw a random Cinepak file and random MPEG-1 file at it to see what happens. MPEG-1 didn’t do anything, but this Cinepak file from some Sierra game played handily :


    DreamShell playing Cinepak

    If you must enter strings, it helps to have a Dreamcast keyboard (which I do). Failing that, here’s a glimpse of the onscreen keyboard that DreamShell equips :


    DreamShell onscreen keyboard

    Learning to use it is a game in itself.

    There is an option of installing DreamShell in the BIOS. I did not attempt this. I don’t know if it’s possible (not like there’s a lot of documentation)– perhaps a custom BIOS modchip is needed. But here’s what the screen looks like :


    DreamShell BIOS installation menu

    There is also a plain console to interact with (better have a physical keyboard). There are numerous file manipulation commands and custom system interaction commands. I see one interesting command called ‘addr’ that looks useful for dumping memory regions to a file.

    A Lua language interpreter is also built in. I would love to play with this if I could ascertain whether DreamShell provided Dreamcast-specific APIs.

    Tips And Troubleshooting
    I have 3 Dreamcast consoles, affectionately named Terran, Protoss, and Zerg after the StarCraft II stickers with which they are adorned. Some seem to work better than others. Protoss seemed to be able to boot the DreamShell disc more reliably than the others. However, I was alarmed when it couldn’t boot one morning when it was churning the previous day.

    I think the problem is that it was just cold. That seemed to be the issue. I put in a normal GD-ROM and let it warm up on that disc for awhile and then DreamShell booted fine. So that’s my piece of cargo-culting troubleshooting advice.