Recherche avancée

Médias (33)

Mot : - Tags -/creative commons

Autres articles (82)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • MediaSPIP en mode privé (Intranet)

    17 septembre 2013, par

    À partir de la version 0.3, un canal de MediaSPIP peut devenir privé, bloqué à toute personne non identifiée grâce au plugin "Intranet/extranet".
    Le plugin Intranet/extranet, lorsqu’il est activé, permet de bloquer l’accès au canal à tout visiteur non identifié, l’empêchant d’accéder au contenu en le redirigeant systématiquement vers le formulaire d’identification.
    Ce système peut être particulièrement utile pour certaines utilisations comme : Atelier de travail avec des enfants dont le contenu ne doit pas (...)

Sur d’autres sites (14556)

  • Playing videos on iPhone after video conversion using ffmpeg

    12 juillet 2013, par Shashi

    It is a backend API(developed in Ruby on Rails) which is used by iphone and android mobiles to upload the videos. API is converting uploaded videos to MP4 format. I am using paperclip-ffmpeg gem for video conversion at backend. Here is what I used :

    has_attached_file :video ,
                 :styles=>{
                   :medium=>{ :geometry=>"480x360",:format=>'mp4',:streaming => true,
                       :convert_options => { :output =>
                                           {
                                             :acodec => 'aac',
                                             :ac => 2 ,
                                             :strict => 'experimental',
                                             'b:a' => '160k',

                                             :vcodec => 'libx264',
                                             :preset => 'slow',
                                             'profile:v' => 'baseline',
                                             :level => '30',
                                             :maxrate => '10000000',
                                             :bufsize => '10000000',
                                             'b:v' => '750k',
                                             :f => 'mp4',
                                             :threads => '0'
                                           }
                                       } },
                     :thumb => { :geometry => "160x120", :format => 'jpg', :time => 2 },
                     :thumb_large => { :geometry => "520x390", :format => 'jpg', :time => 2}
                   }, :processors => [:ffmpeg, :qtfaststart],
           :path => path/to/store/video,
           :url => url/of/video

    Problems I am facing are :

    When user uploads videos from android mobile it works perfect on android but does not play on iPhone. One more strange thing happens when user upload videos from iPhone, then it play perfect just after video upload, but after some time(2 or 3 hours) it stops to play those videos.

    How can I get rid of both these issues ? Any suggestion would be appreciated. Thanks

    @Michael, here is the detailed log for the video conversion uploaded by android mobile

    ffmpeg version git-2013-05-28-ced0307 Copyright (c) 2000-2013 the FFmpeg developers
     built on May 28 2013 07:45:18 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
     configuration: --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libopus --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
     libavutil      52. 34.100 / 52. 34.100
     libavcodec     55. 12.100 / 55. 12.100
     libavformat    55.  7.100 / 55.  7.100
     libavdevice    55.  1.101 / 55.  1.101
     libavfilter     3. 72.100 /  3. 72.100
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l':
     Metadata:
       major_brand     : isom
       minor_version   : 0
       compatible_brands: isom3gp4
       creation_time   : 2013-06-19 15:39:02
     Duration: 00:00:25.88, start: 0.000000, bitrate: 16700 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 16829 kb/s, 29.75 fps, 30 tbr, 90k tbn, 180k tbc
       Metadata:
         rotate          : 90
         creation_time   : 2013-06-19 15:39:02
         handler_name    : VideoHandle
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 122 kb/s
       Metadata:
         creation_time   : 2013-06-19 15:39:02
         handler_name    : SoundHandle
    [libx264 @ 0x2613c00] using cpu capabilities: MMX2 SSE2Fast SSEMisalign LZCNT
    [libx264 @ 0x2613c00] profile Constrained Baseline, level 3.0
    [libx264 @ 0x2613c00] 264 - core 133 r2 a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=750 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=10000 vbv_bufsize=10000 nal_hrd=none ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 0
       compatible_brands: isom3gp4
       encoder         : Lavf55.7.100
       Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x360, q=-1--1, 750 kb/s, 15360 tbn, 30 tbc
       Metadata:
         rotate          : 90
         creation_time   : 2013-06-19 15:39:02
         handler_name    : VideoHandle
       Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 160 kb/s
       Metadata:
         creation_time   : 2013-06-19 15:39:02
         handler_name    : SoundHandle
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> libx264)
     Stream #0:1 -> #0:1 (aac -> aac)
    Press [q] to stop, [?] for help
    frame=  765 fps= 19 q=-1.0 Lsize=    2621kB time=00:00:25.88 bitrate= 829.4kbits/s dup=7 drop=0    
    video:2093kB audio:504kB subtitle:0 global headers:0kB muxing overhead 0.878228%
    [libx264 @ 0x2613c00] frame I:4     Avg QP:25.48  size: 11731
    [libx264 @ 0x2613c00] frame P:761   Avg QP:26.71  size:  2754
    [libx264 @ 0x2613c00] mb I  I16..4: 33.0%  0.0% 67.0%
    [libx264 @ 0x2613c00] mb P  I16..4:  2.1%  0.0%  0.9%  P16..4: 47.2%  9.5%  3.4%  0.0%  0.0%    skip:36.9%
    [libx264 @ 0x2613c00] final ratefactor: 23.58
    [libx264 @ 0x2613c00] coded y,uvDC,uvAC intra: 31.9% 54.5% 9.5% inter: 11.9% 24.4% 0.5%
    [libx264 @ 0x2613c00] i16 v,h,dc,p: 25% 33%  7% 34%
    [libx264 @ 0x2613c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 14%  9% 14% 10% 10% 11%  8%  7%
    [libx264 @ 0x2613c00] i8c dc,h,v,p: 50% 25% 17%  9%
    [libx264 @ 0x2613c00] ref P L0: 67.6% 15.2% 10.1%  3.9%  3.2%
    [libx264 @ 0x2613c00] kb/s:672.30
    ffmpeg version git-2013-05-28-ced0307 Copyright (c) 2000-2013 the FFmpeg developers
     built on May 28 2013 07:45:18 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
     configuration: --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libopus --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
     libavutil      52. 34.100 / 52. 34.100
     libavcodec     55. 12.100 / 55. 12.100
     libavformat    55.  7.100 / 55.  7.100
     libavdevice    55.  1.101 / 55.  1.101
     libavfilter     3. 72.100 /  3. 72.100 octet-stream\r\n" name="video" tempfile=#tmp/RackMultipart20130620-28711-187049m>>
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.7.100
     Duration: 00:00:25.91, start: 0.021333, bitrate: 828 kb/s
       Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360, 672 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         rotate          : 90
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 159 kb/s
       Metadata:
         handler_name    : SoundHandler
    [libx264 @ 0x326d820] using cpu capabilities: MMX2 SSE2Fast SSEMisalign LZCNT
    [libx264 @ 0x326d820] profile Constrained Baseline, level 3.0
    [libx264 @ 0x326d820] 264 - core 133 r2 a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=750 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=10000 vbv_bufsize=10000 nal_hrd=none ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-130rd1i.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.7.100
       Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 480x270, q=-1--1, 750 kb/s, 15360 tbn, 30 tbc
       Metadata:
         rotate          : 90
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 160 kb/s
       Metadata:
         handler_name    : SoundHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> libx264)
     Stream #0:1 -> #0:1 (aac -> aac)
    Press [q] to stop, [?] for help
    frame=  766 fps= 38 q=-1.0 Lsize=    2666kB time=00:00:25.90 bitrate= 843.2kbits/s dup=1 drop=0    
    video:2138kB audio:505kB subtitle:0 global headers:0kB muxing overhead 0.863633%
    [libx264 @ 0x326d820] frame I:4     Avg QP:20.82  size: 11283
    [libx264 @ 0x326d820] frame P:762   Avg QP:22.03  size:  2813
    [libx264 @ 0x326d820] mb I  I16..4: 19.9%  0.0% 80.1%
    [libx264 @ 0x326d820] mb P  I16..4:  1.7%  0.0%  1.1%  P16..4: 49.3% 20.6%  7.0%  0.0%  0.0%    skip:20.3%
    [libx264 @ 0x326d820] final ratefactor: 19.24
    [libx264 @ 0x326d820] coded y,uvDC,uvAC intra: 43.4% 76.7% 29.0% inter: 23.0% 44.6% 1.7%
    [libx264 @ 0x326d820] i16 v,h,dc,p: 23% 29%  9% 39%
    [libx264 @ 0x326d820] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 21%  9% 11% 10% 10% 11%  8%  8%
    [libx264 @ 0x326d820] i8c dc,h,v,p: 44% 26% 18% 12%
    [libx264 @ 0x326d820] ref P L0: 74.0% 13.1%  7.7%  3.0%  2.1%
    [libx264 @ 0x326d820] kb/s:685.81
    ffmpeg version git-2013-05-28-ced0307 Copyright (c) 2000-2013 the FFmpeg developers
     built on May 28 2013 07:45:18 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
     configuration: --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libopus --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
     libavutil      52. 34.100 / 52. 34.100
     libavcodec     55. 12.100 / 55. 12.100
     libavformat    55.  7.100 / 55.  7.100
     libavdevice    55.  1.101 / 55.  1.101
     libavfilter     3. 72.100 /  3. 72.100
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.7.100
     Duration: 00:00:25.91, start: 0.021333, bitrate: 828 kb/s
       Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360, 672 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         rotate          : 90
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 159 kb/s
       Metadata:
         handler_name    : SoundHandler
    Output #0, image2, to '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-1bdslpu.jpg':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.7.100
       Stream #0:0(eng): Video: mjpeg, yuvj420p, 160x90, q=2-31, 200 kb/s, 90k tbn, 30 tbc
       Metadata:
         rotate          : 90
         handler_name    : VideoHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> mjpeg)
    Press [q] to stop, [?] for help
    frame=    1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.03 bitrate=N/A dup=0 drop=57    
    video:4kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.479303%
    ffmpeg version git-2013-05-28-ced0307 Copyright (c) 2000-2013 the FFmpeg developers
     built on May 28 2013 07:45:18 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
     configuration: --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libopus --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
     libavutil      52. 34.100 / 52. 34.100
     libavcodec     55. 12.100 / 55. 12.100
     libavformat    55.  7.100 / 55.  7.100
     libavdevice    55.  1.101 / 55.  1.101
     libavfilter     3. 72.100 /  3. 72.100
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.7.100
     Duration: 00:00:25.91, start: 0.021333, bitrate: 828 kb/s
       Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360, 672 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         rotate          : 90
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 159 kb/s
       Metadata:
         handler_name    : SoundHandler
    Output #0, image2, to '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-1vp4al6.jpg':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.7.100
       Stream #0:0(eng): Video: mjpeg, yuvj420p, 520x292, q=2-31, 200 kb/s, 90k tbn, 30 tbc
       Metadata:
         rotate          : 90
         handler_name    : VideoHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> mjpeg)
    Press [q] to stop, [?] for help
    frame=    1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.03 bitrate=N/A dup=0 drop=57    
    video:19kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.113677%


    Started POST "/api/v1/videos/create" for 69.42.0.13 at 2013-06-20 09:41:50 -0500
    Command :: file -b --mime '/tmp/RackMultipart20130620-28711-187049m'
    [paperclip] [ffmpeg] ffmpeg -i "/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l" 2>&1
    [paperclip] [ffmpeg] Command Success
    [paperclip] [ffmpeg] Making...
    [paperclip] [ffmpeg] Building Destination File: 'RackMultipart20130620-28711-187049m20130620-28711-2x7b7l' + 'mp4'
    [paperclip] [ffmpeg] Destination File Built
    [paperclip] [ffmpeg] Adding Geometry
    [paperclip] [ffmpeg] Extracting Target Dimensions
    [paperclip] [ffmpeg] Target Size is Available
    [paperclip] [ffmpeg] Keeping Aspect Ratio
    [paperclip] [ffmpeg] Resize
    [paperclip] [ffmpeg] Convert Options: 640x360
    [paperclip] [ffmpeg] Adding Format
    [paperclip] [ffmpeg] Adding Source
    [paperclip] [ffmpeg] Building Parameters
    [paperclip] [ffmpeg] -i :source -acodec aac -ac 2 -strict experimental -b:a 160k -vcodec libx264 -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b:v 750k -f mp4 -threads 0 -s 640x360 -y :dest
    Command :: ffmpeg -i '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l' -acodec aac -ac 2 -strict experimental -b:a 160k -vcodec libx264 -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b:v 750k -f mp4 -threads 0 -s 640x360 -y '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p.mp4'
    [paperclip] [qt-faststart] :source :dest
    Command :: qt-faststart '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p.mp4' '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl.mp4'
    [paperclip] [ffmpeg] ffmpeg -i "/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4" 2>&1
    [paperclip] [ffmpeg] Command Success
    [paperclip] [ffmpeg] Making...
    [paperclip] [ffmpeg] Building Destination File: 'RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06' + 'mp4'
    [paperclip] [ffmpeg] Destination File Built
    [paperclip] [ffmpeg] Adding Geometry
    [paperclip] [ffmpeg] Extracting Target Dimensions
    [paperclip] [ffmpeg] Target Size is Available
    [paperclip] [ffmpeg] Keeping Aspect Ratio
    [paperclip] [ffmpeg] Resize
    [paperclip] [ffmpeg] Convert Options: 480x270
    [paperclip] [ffmpeg] Adding Format
    [paperclip] [ffmpeg] Adding Source
    [paperclip] [ffmpeg] Building Parameters
    [paperclip] [ffmpeg] -i :source -acodec aac -ac 2 -strict experimental -b:a 160k -vcodec libx264 -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b:v 750k -f mp4 -threads 0 -s 480x270 -y :dest
    Command :: ffmpeg -i '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4' -acodec aac -ac 2 -strict experimental -b:a 160k -vcodec libx264 -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b:v 750k -f mp4 -threads 0 -s 480x270 -y '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-130rd1i.mp4'
    [paperclip] [qt-faststart] :source :dest
    Command :: qt-faststart '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-130rd1i.mp4' '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-130rd1i20130620-28711-snde6v.mp4'
    [paperclip] [ffmpeg] ffmpeg -i "/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4" 2>&1
    [paperclip] [ffmpeg] Command Success
    [paperclip] [ffmpeg] Making...
    [paperclip] [ffmpeg] Building Destination File: 'RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06' + 'jpg'
    [paperclip] [ffmpeg] Destination File Built
    [paperclip] [ffmpeg] Adding Geometry
    [paperclip] [ffmpeg] Extracting Target Dimensions
    [paperclip] [ffmpeg] Target Size is Available
    [paperclip] [ffmpeg] Keeping Aspect Ratio
    [paperclip] [ffmpeg] Resize
    [paperclip] [ffmpeg] Convert Options: 160x90
    [paperclip] [ffmpeg] Adding Format
    [paperclip] [ffmpeg] Adding Source
    [paperclip] [ffmpeg] Building Parameters
    [paperclip] [ffmpeg] -ss 2 -i :source -s 160x90 -vframes 1 -f image2 -y :dest
    Command :: ffmpeg -ss 2 -i '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4' -s 160x90 -vframes 1 -f image2 -y '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-1bdslpu.jpg'
    [paperclip] [ffmpeg] ffmpeg -i "/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4" 2>&1
    [paperclip] [ffmpeg] Command Success
    [paperclip] [ffmpeg] Making...
    [paperclip] [ffmpeg] Building Destination File: 'RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06' + 'jpg'
    [paperclip] [ffmpeg] Destination File Built
    [paperclip] [ffmpeg] Adding Geometry
    [paperclip] [ffmpeg] Extracting Target Dimensions
    [paperclip] [ffmpeg] Target Size is Available
    [paperclip] [ffmpeg] Keeping Aspect Ratio
    [paperclip] [ffmpeg] Resize
    [paperclip] [ffmpeg] Convert Options: 520x292
    [paperclip] [ffmpeg] Adding Format
    [paperclip] [ffmpeg] Adding Source
    [paperclip] [ffmpeg] Building Parameters
    [paperclip] [ffmpeg] -ss 2 -i :source -s 520x292 -vframes 1 -f image2 -y :dest
    Command :: ffmpeg -ss 2 -i '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi06.mp4' -s 520x292 -vframes 1 -f image2 -y '/tmp/RackMultipart20130620-28711-187049m20130620-28711-2x7b7l20130620-28711-uibd1p20130620-28711-1tgemjl20130620-28711-15qsi0620130620-28711-1vp4al6.jpg'
    [paperclip] Saving attachments.
  • H.264 conversion with FFmpeg (from a RTP stream)

    12 juillet 2014, par Toby

    Environment :

    I have an IP Camera, which is capable of streaming it’s data over RTP in a H.264 encoded format. This raw stream is recorded from the ethernet. With that data I have to work.

    Goal :

    In the end I want to have a *.mp4 file, which I can play with common Media Players (like VLC or Windows MP).

    What have I done so far :

    I take that raw stream data I have and parse it. Since the data has been transmitted via RTP I need to take care of the NAL Bytes, SPS and PPS.

    1. Write a raw file

    First I determine the type of each frame received over Ethernet. To do so, I parse the first two bytes of every RTP Payload, so I can get the 8 NAL Unit Bit, the Fragment Type Bits and the Start, Reserved and End Bit. In the payload, they’re arranged like this :

    Byte 1: [          3 NAL Unit Bits          | 5 Fragment Type Bits]
    Byte 2: [Start Bit | Reserved Bit | End Bit | 5 NAL Unit Bits]

    From this I can determine :

    • Start and End of
      a Video Frame -> Start Bit and End Bit
    • Type of the Payload -> 5 Fragment Type Bits
    • NAL Unit Byte

    The Fragment types which are necessary in my case are :

    Fragment Type  7 = SPS
    Fragment Type  8 = PPS
    Fragment Type 28 = Video Fragment

    The NAL Byte is created by putting the NAL Unit Bits from Byte 1 and 2 together.

    Now depending on the fragmentation type I do the following :

    SPS/PPS :

    1. Write the NAL Prefix (0x00 0x00 0x01) and then the SPS or PPS data

    Fragmentation with Start Bit

    1. Write NAL Prefix
    2. Write NAL Unit Byte
    3. Write remaining raw data

    Fragmentation without Start Bit

    1. Write raw data

    This means my raw file looks something like this :

    [NAL Prefix][SPS][NAL Prefix][PPS][NAL Prefix][NAL Unit Byte][Raw Video Data][Raw Video Data]....[NAL Prefix][NAL Unit Byte][Raw Video Data]...

    For every PPS and SPS I find in my stream data, I just write a NAL Prefix ( 0x00 0x00 0x01 ) and then the SPS/PPS itself.

    Now I can’t play this data with some media player, which leads me to :

    2. Convert the file

    Since I wanted to avoid working much with codecs I just went to use an existing application -> FFmpeg. This I am calling with those parameters :

    ffmpeg.exe -f h264 -i <rawinputfile> -vcodec copy -r 25 <outputfilename>.mp4</outputfilename></rawinputfile>

    -f h264 : This should tell ffmpeg I have a h264 coded stream

    -vcodec copy : Quote from the manpage :

    Force video codec to codec. Use the "copy" special value to tell that the raw codec data must be copied as is.

    -r 25 : Sets the framerate to 25 FPS.

    When I call ffmpeg with those parameters I get an .mp4 File, which I can play with VLC and Windows MP, so it actually works. But the file now looks a bit different from my raw file.

    This leads me to my question :

    What did I actually do ?

    My problem is not that it is not working. I just want/need to know what I have actually done with calling ffmpeg. I had a raw H264 file which I could not play. After using FFmpeg I can play it.

    There are the following differences between the original raw file (which I have written) and the one written by FFmpeg :

    1. Header : The FFmpeg File has like about 0x30 Bytes of Header
    2. Footer : The FFmpeg File also has a footer
    3. Changed Prefix and 2 new Bytes :

    While a new Video Frame from the Raw File started like
    [NAL Prefix][NAL Unit Byte][Raw Video Data] in the new file it looks like this :

    [0x00 0x00][2 "Random" Bytes][NAL Unit Byte][Raw Video Data].....[0x00 0x00[2 other "Random" Bytes][NAL Unit Byte][Raw Video Data]...

    I understand that the Video Stream needs a container format (correct me if I am wrong but I assume that the new header and footer are responsible for that). But why does it change actually some Bytes in the raw data ? It can’t be some decoding since the stream itself should get decoded by the player and not ffmpeg.

    As you can see I don’t need a new solution for my problem as far more an explanation (so I can explain it by myself). What does ffmpeg actually do ? And why does it change some bytes within the video data ?

  • ffplay : fix missed conversion of video_current_pts to vidclk.pts in subtitles

    15 juin 2013, par Marton Balint
    ffplay : fix missed conversion of video_current_pts to vidclk.pts in subtitles
    

    Fixes regression with subtitles introduced in f2175a6.
    Fixes ticket #2666.

    Signed-off-by : Marton Balint <cus@passwd.hu>

    • [DH] ffplay.c