Note that there are some explanatory texts on larger screens.

plurals
  1. POEncode x264 video with ffmpeg for Android with starting offset
    primarykey
    data
    text
    <p>I'm trying to convert a video to play on an Android device. The video is from a big movie. I am chopping it back into pieces to correspond with the actual segments of the movie using -ss and -t.</p> <p>The input is mp4 with H.264 and AAC. The output is mkv using H.264 and Vorbis.</p> <p>Specifically, the input is: </p> <pre><code>Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 320x240, 2240 kb/s, 29.97 fps, 60 tbr, 90k tbn, 180k tbc Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 162 kb/s </code></pre> <p>I'm using: ffmpeg version 1.0.7</p> <p>The command I'm trying is something like: </p> <pre><code>ffmpeg -ss 00:03:52.000 -i in.mp4 -t 00:01:00.000 -c:v libx264 -preset medium -crf 20 -maxrate 400k -bufsize 1835k -c:a libvorbis -sn out.mkv </code></pre> <p>However, while the resulting video works fine on my computer, when I click on my phone, it says: Can't play video and checking the Android log, it has: </p> <pre><code>E/SoftAVC (24319): Decoder failed: -2 E/OMXCodec(24319): [OMX.google.h264.decoder] ERROR(0x80001001, -1007) </code></pre> <p>It is still able to make a thumbnail for the movie, but not play it.</p> <p>Interestingly, some simple variations of that command do work: Remove -ss to start at the beginning of the video Use -an to disable audio</p> <p>These variations still failed: Copying the original audio with -c:a copy, or other audio codecs like vorbis, mp3 Using mp4 instead of mkv Using baseline H.264 profile, including restricting level to 1.2.</p> <p>Running through mkvmerge first not only fails, but makes Android not able to even make a thumbnail.</p> <p>I don't know if it is related, but another small thing I noticed is that for starting transcoding later in the movie, the audio starts out slightly out-of-sync. After several seconds, it gets back in sync. The audio is in sync in the original.</p> <p>Robert Rowntree: </p> <pre><code>-vcodec libx264 -b:v 200k -bt 50k -threads 0 -b_strategy 1 -acodec copy -f mp4 -strict -2 </code></pre> <p>Interesting. Your command almost works. The video actually plays on Android. The one problem is that the audio is out-of-sync and stays out-of-sync throughout the whole clip. But, that's much closer than I've been. I'll search around there and see if I can find the right combination.</p> <p>I tried combinations of it. It appears that using both mp4 and copying the audio is what allows it to work. Using libvorbis or going to mkv breaks it again. But, I would like to transcode the audio, and I suspect to keep it in sync, I might have to transcode it anyways. Note that even with transcoding, when I play it back on the computer, I still don't have sync between audio and video.</p> <p>LordNeckbeard: Here is the complete log. </p> <pre><code>ffmpeg version 1.0.7 Copyright (c) 2000-2013 the FFmpeg developers built on Jul 27 2013 13:01:19 with gcc 4.4.5 (Gentoo 4.4.5 p1.2, pie-0.4.5) configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-mtune=athlon64 -O2 -pipe -fomit-frame-pointer -fstack-protector' --extra-cflags='-mtune=athlon64 -O2 -pipe -fomit-frame-pointer -fstack-protector' --extra-cxxflags='-mtune=athlon64 -O2 -pipe -fomit-frame-pointer -fstack-protector' --disable-static --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --enable-avresample --disable-stripping --disable-debug --disable-doc --disable-vaapi --disable-runtime-cpudetect --enable-libmp3lame --enable-libvo-aacenc --enable-libtheora --enable-libx264 --enable-libxvid --enable-libcaca --enable-openal --disable-indev=v4l2 --disable-indev=oss --disable-indev=jack --enable-x11grab --disable-outdev=oss --enable-libfreetype --enable-pthreads --enable-libspeex --enable-libvorbis --disable-altivec --disable-avx --disable-vis --disable-neon --cpu=athlon64 - libavutil 51. 73.101 / 51. 73.101 libavcodec 54. 59.100 / 54. 59.100 libavformat 54. 29.104 / 54. 29.104 libavdevice 54. 2.101 / 54. 2.101 libavfilter 3. 17.100 / 3. 17.100 libswscale 2. 1.101 / 2. 1.101 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 creation_time : 2013-07-13 02:23:51 encoder : HandBrake 0.9.6 2012022800 Duration: 03:14:01.41, start: 0.000000, bitrate: 2408 kb/s Chapter #0.0: start -0.133467, end 648.697411 Metadata: title : Chapter 1 Chapter #0.1: start 648.697411, end 1297.345411 Metadata: title : Chapter 2 Chapter #0.2: start 1297.345411, end 1729.777411 Metadata: title : Chapter 3 Chapter #0.3: start 1729.777411, end 2378.425411 Metadata: title : Chapter 4 Chapter #0.4: start 2378.425411, end 3027.073411 Metadata: title : Chapter 5 Chapter #0.5: start 3027.073411, end 3675.721411 Metadata: title : Chapter 6 Chapter #0.6: start 3675.721411, end 4108.153411 Metadata: title : Chapter 7 Chapter #0.7: start 4108.153411, end 4756.801411 Metadata: title : Chapter 8 Chapter #0.8: start 4756.801411, end 5405.449411 Metadata: title : Chapter 9 Chapter #0.9: start 5405.449411, end 6054.097411 Metadata: title : Chapter 10 Chapter #0.10: start 6054.097411, end 6702.745411 Metadata: title : Chapter 11 Chapter #0.11: start 6702.745411, end 7135.177411 Metadata: title : Chapter 12 Chapter #0.12: start 7135.177411, end 7783.825411 Metadata: title : Chapter 13 Chapter #0.13: start 7783.825411, end 8432.473411 Metadata: title : Chapter 14 Chapter #0.14: start 8432.473411, end 9081.121411 Metadata: title : Chapter 15 Chapter #0.15: start 9081.121411, end 9513.553411 Metadata: title : Chapter 16 Chapter #0.16: start 9513.553411, end 10162.201411 Metadata: title : Chapter 17 Chapter #0.17: start 10162.201411, end 10810.849411 Metadata: title : Chapter 18 Chapter #0.18: start 10810.849411, end 11459.497411 Metadata: title : Chapter 19 Chapter #0.19: start 11459.497411, end 11641.412478 Metadata: title : Chapter 20 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 320x240, 2240 kb/s, 29.97 fps, 60 tbr, 90k tbn, 180k tbc Metadata: creation_time : 2013-07-13 02:23:51 Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 162 kb/s Metadata: creation_time : 2013-07-13 02:23:51 Stream #0:2(und): Subtitle: mov_text (text / 0x74786574) Metadata: creation_time : 2013-07-13 02:23:51 [libx264 @ 0x14ea220] using cpu capabilities: MMX2 SSE2Slow SlowCTZ [libx264 @ 0x14ea220] profile High, level 2.1 [libx264 @ 0x14ea220] 264 - core 120 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=60 keyint_min=6 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=400 vbv_bufsize=1835 crf_max=0.0 nal_hrd=none ip_ratio=1.40 aq=1:1.00 Output #0, matroska, to 'out.mkv': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 encoder : Lavf54.29.104 Chapter #0.0: start 0.000000, end 60.000000 Metadata: title : Chapter 1 Stream #0:0(und): Video: h264 (H264 / 0x34363248), yuv420p, 320x240, q=-1--1, 1k tbn, 60 tbc Metadata: creation_time : 2013-07-13 02:23:51 Stream #0:1(und): Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, stereo, flt Metadata: creation_time : 2013-07-13 02:23:51 Stream mapping: Stream #0:0 -&gt; #0:0 (h264 -&gt; libx264) Stream #0:1 -&gt; #0:1 (aac -&gt; libvorbis) Press [q] to stop, [?] for help frame= 1799 fps= 92 q=-1.0 Lsize= 3738kB time=00:00:59.98 bitrate= 510.5kbits/s dup=0 drop=51 =51 video:3016kB audio:683kB subtitle:0 global headers:4kB muxing overhead 0.939943% [libx264 @ 0x14ea220] frame I:31 Avg QP:20.23 size: 14126 [libx264 @ 0x14ea220] frame P:634 Avg QP:23.03 size: 3317 [libx264 @ 0x14ea220] frame B:1134 Avg QP:27.71 size: 482 [libx264 @ 0x14ea220] consecutive B-frames: 2.3% 12.8% 84.7% 0.2% [libx264 @ 0x14ea220] mb I I16..4: 3.8% 63.8% 32.4% [libx264 @ 0x14ea220] mb P I16..4: 0.1% 0.3% 0.1% P16..4: 47.4% 30.2% 19.5% 0.0% 0.0% skip: 2.4% [libx264 @ 0x14ea220] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 35.2% 3.0% 0.6% direct: 8.8% skip:52.3% L0:28.7% L1:63.9% BI: 7.4% [libx264 @ 0x14ea220] 8x8 transform intra:64.0% inter:59.5% [libx264 @ 0x14ea220] coded y,uvDC,uvAC intra: 94.2% 99.5% 95.5% inter: 23.3% 55.5% 14.0% [libx264 @ 0x14ea220] i16 v,h,dc,p: 75% 10% 5% 10% [libx264 @ 0x14ea220] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 16% 12% 8% 7% 8% 8% 11% 11% [libx264 @ 0x14ea220] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 20% 7% 8% 9% 9% 10% 10% 11% [libx264 @ 0x14ea220] i8c dc,h,v,p: 38% 31% 14% 17% [libx264 @ 0x14ea220] Weighted P-Frames: Y:7.3% UV:4.4% [libx264 @ 0x14ea220] ref P L0: 48.8% 14.2% 29.1% 7.5% 0.4% [libx264 @ 0x14ea220] ref B L0: 65.4% 30.8% 3.7% [libx264 @ 0x14ea220] ref B L1: 89.0% 11.0% [libx264 @ 0x14ea220] kb/s:411.70 </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload