2013-06-20 169 views
0

这是一个后端API(由Ruby on Rails开发),iphone和android手机使用它来上传视频。 API将上传的视频转换为MP4格式。我在后端使用paperclip-ffmpeg gem进行视频转换。下面是我用什么:我现在面临使用ffmpeg在视频转换后在iPhone上播放视频

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 

的问题是:

当用户上传视频从Android手机它可以完美运行于Android,但在iPhone不能播放。当用户从iPhone上传视频时会发生更奇怪的事情,然后在视频上传后播放完美,但在一段时间后(2或3小时)停止播放这些视频。

我该如何摆脱这两个问题?任何建议,将不胜感激。由于

@迈克尔,这里是详细的日志用于视频转换的Android手机

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 <Hashie::Mash groups="{\"groups\":[0]}" post="uploaded from android" route_info=version=v1, method=POST, path=/:version/videos/create(.:format) user_id=31 version="v1" video=#<Hashie::Mash filename="video" head="Content-Disposition: form-data; name=\"video\"; filename=\"video\"\r\nContent-Type: application/octet-stream\r\n" name="video" tempfile=#<File:/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. 
+0

你可以附加任何调试/日志? –

+0

@MichaelSzyndel,已编辑的问题和附加的转换日志 – Shashi

+0

出现类似的问题,并注意到您无法播放的视频上也有一个VideoHandler标签“rotate:90”。似乎是我的问题和你的问题之间的唯一联系......也许iOS不能解释这一点? – Mike

回答

2

我刚刚写了一篇博客,涵盖encoding_h264_for_ios显示H.264编码的是做,做不的例子上传在iOS硬件上工作。我使用的特定命令行是这样的:

ffmpeg -y -i INPUT.mov -c:v libx264 
    -pix_fmt yuv420p -preset:v slow 
    -profile:v baseline -crf 23 
    OUTPUT.m4v 

如果我是你,我会尝试编码命令行上的视频和测试他们在iOS硬件,而不Web界面。然后,使用特定的命令行选项逐步进行操作,直到找到打破iOS播放的选项。

+0

我有ipad 1,我使用的是除-pix_fmt yuv420p之外的同一行代码...我总是有一些视频不能在ipad上播放...现在读完yoursite后,我还添加了-pix_fmt yuv420p ...我使用主要配置文件...不是基线,但它应该在ipad上工作....无论如何一些视频不play.any建议?以及你对multipass的想法可能与-crf?我也将文件保存为MP4而不是m4v ...但没有区别..您只需更改扩展名即可。 – cocco

+0

.m4v和.mp4扩展名无关紧要,这两个文件都将包含Quicktime容器格式数据。我会尝试基线,如果你不能让视频与主要工作,但是是应该在iPad1上工作。您也可以尝试更高的crf编号,并查看是否修复了损坏的播放,因为它会减少数据流中的数据量。没有使用-crf的多路径,只是使用crf,因为它更容易,而且做得更好。 – MoDJ