Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
correctly escaping text in drawtext filter
6 novembre 2013, par menteAccording to documentation
%{}:,
should be escaped with slash. But when I escape%
the text is not added. There's error message sayingStray % near ')'
. But what does it mean and how I can fix it? Command and output:$ /usr/bin/ffmpeg -y -i /home/www/255871.mov -af 'aresample=async=1:min_hard_comp=0.100000' -vf 'scale=480:trunc(ow/a/2)*2,transpose=1 [in];movie=watermarks/text-box440.mov,scale=320:55 [bg];[in][bg] overlay=x=20:y=main_h-80,drawtext=fontsize=20:fix_bounds=1:fontfile=Helvetica\\:Style=bold:fontcolor=0xe6b300:text=small kitten \%\):x=30:y=h-80+ascent/2:draw=gte(t\,0)\;lt(t\,5) [out]' -pix_fmt yuv420p -r 24.39 -map_metadata -1 -movflags +faststart -f mp4 -vcodec libx264 -b:v 800k -maxrate 1100k -bufsize 2M -bt 256k -profile:vbaseline -acodec libfdk_aac -ab 64k -ar 44100 -ac 1 /tmp/kitten.mp4 ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers built on Mar 15 2013 18:40:14 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4) configuration: --enable-gpl --enable-libmp3lame --enable-libvo-aacenc --enable-libx264 --enable-version3 --enable-pthreads --enable-libfaac --enable-nonfree --enable-libfdk_a ac --enable-fontconfig --enable-libfreetype libavutil 52. 18.100 / 52. 18.100 libavcodec 54. 92.100 / 54. 92.100 libavformat 54. 63.104 / 54. 63.104 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 42.103 / 3. 42.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/www/255871.mov': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2012-07-17 07:42:35 model : iPhone 3GS model-rus : iPhone 3GS encoder : 4.2.1 encoder-rus : 4.2.1 date : 2012-07-17T10:42:35+0300 date-rus : 2012-07-17T10:42:35+0300 make : Apple make-rus : Apple Duration: 00:00:09.38, start: 0.000000, bitrate: 790 kb/s Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 480x360, 720 kb/s, 29.97 fps, 29.97 tbr, 600 tbn, 1200 tbc Metadata: rotate : 90 creation_time : 2012-07-17 07:42:35 handler_name : Core Media Data Handler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s Metadata: creation_time : 2012-07-17 07:42:35 handler_name : Core Media Data Handler [Parsed_drawtext_5 @ 0x2ae9b00] Using "/usr/share/fonts/default/Type1/n019003l.pfb" [libx264 @ 0x2ae7d40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX [libx264 @ 0x2ae7d40] profile Constrained Baseline, level 2.1 [libx264 @ 0x2ae7d40] 264 - core 130 r2274 c832fe9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 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=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=800 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=1100 vbv_bufsize=2000 nal_hrd=none ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/tmp/kitten.mp4': Metadata: encoder : Lavf54.63.104 Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 360x480, q=-1--1, 800 kb/s, 19512 tbn, 24.39 tbc Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, mono, s16, 64 kb/s Stream mapping: Stream #0:0 -> #0:0 (h264 -> libx264) Stream #0:1 -> #0:1 (aac -> libfdk_aac) Press [q] to stop, [?] for help [Parsed_drawtext_5 @ 0x2ae9b00] Stray % near ')' Last message repeated 201 times Stray % near ')'0.0 q=27.0 size= 480kB time=00:00:07.96 bitrate= 493.4kbits/s dup=0 drop=35 [Parsed_drawtext_5 @ 0x2ae9b00] Stray % near ')' Last message repeated 77 times Starting second pass: moving header on top of the file frame= 231 fps=0.0 q=-1.0 Lsize= 1002kB time=00:00:09.47 bitrate= 866.6kbits/s dup=0 drop=50 video:921kB audio:74kB subtitle:0 global headers:0kB muxing overhead 0.680957% [libx264 @ 0x2ae7d40] frame I:1 Avg QP:24.43 size: 13264 [libx264 @ 0x2ae7d40] frame P:230 Avg QP:23.72 size: 4041 [libx264 @ 0x2ae7d40] mb I I16..4: 24.8% 0.0% 75.2% [libx264 @ 0x2ae7d40] mb P I16..4: 2.3% 0.0% 4.8% P16..4: 34.4% 28.8% 9.4% 0.0% 0.0% skip:20.3% [libx264 @ 0x2ae7d40] coded y,uvDC,uvAC intra: 62.5% 54.2% 4.4% inter: 19.6% 20.3% 0.1% [libx264 @ 0x2ae7d40] i16 v,h,dc,p: 36% 29% 19% 16% [libx264 @ 0x2ae7d40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 21% 20% 6% 8% 7% 7% 6% 6% [libx264 @ 0x2ae7d40] i8c dc,h,v,p: 65% 15% 17% 3% [libx264 @ 0x2ae7d40] ref P L0: 93.4% 4.3% 2.3% [libx264 @ 0x2ae7d40] kb/s:796.32
-
ffmpeg libavcodec.so missing while compile with cygwin
6 novembre 2013, par nickI am building ffmpeg for android by following this tutorial
now i got android folder inside the ffmpeg2.0.1 folder but there is no libavcodec-55.so file. instead of that i have lib/libavcodec.a
how can i get libavcodec.so file? build_android.sh
#!/bin/bash NDK=$HOME/Desktop/adt/android-ndk-r9 SYSROOT=$NDK/platforms/android-9/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64 function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make clean make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one
-
ffmpeg audio conversion distorted - half rate
6 novembre 2013, par user1688971I'm trying to convert an asf audio to mp3 using ffmpeg. But I have one specific audio that gets distorted in the middle and starts like if the person was talking in slow motion (at half rate).
The command I'm using is:
ffmpeg - i input.asf -ac 2 output.mp3
I've tried a lot of options, but about the middle of the audio is when it fails. The raw file sounds good, so it's not the recording. It is af in the middle of the transmission the frame rate went down for some reason.
Thanks all!
[EDIT]
I'm adding the console response after running the command as a suggestion from LordNeckbeard:
[root@mynasserver home]# ffmpeg -i recording-8532-1.asf -ac 2 -ab 64k -ar 44100 recording-8532-ac2-ar44100.mp3 FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers built on Jan 29 2012 23:56:18 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51) configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables' --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.19. 0 / 1.19. 0 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0 [flv @ 0x86a4850]max_analyze_duration reached [flv @ 0x86a4850]Estimating duration from bitrate, this may be inaccurate Input #0, flv, from 'recording-8532-1.asf': Metadata: source : STW MediaProxy v3.3.7.19894 Duration: 04:00:08.49, start: 0.000000, bitrate: N/A Stream #0.0: Audio: aac, 44100 Hz, 2 channels (FC), s16 Output #0, mp3, to 'recording-8532-ac2-ar44100.mp3': Metadata: TSSE : Lavf52.64.2 Stream #0.0: Audio: libmp3lame, 44100 Hz, 2 channels, s16, 64 kb/s Stream mapping: Stream #0.0 -> #0.0 Press [q] to stop encoding size= 150906kB time=19315.93 bitrate= 64.0kbits/s video:0kB audio:150906kB global headers:0kB muxing overhead 0.000021%
So from the data above, you can see the input file is about 4hrs. The output ends up being around 5 hrs 20 mins.
-
bash script fail when a command wait ffmpeg to finish
5 novembre 2013, par d4r10In ubuntu 13.04 have a node.js server that launch for certain events, a script like this:
#! /bin/bash ... ... avconv -i "$dir$video" -ss "$ss.000" -t $tt -threads 0 "$folder/$dif.webm" y_uid=$(/app/youtube-uploader "$folder/$dif.webm" "$label" "$desc" | grep 'watch' | sed 's/v=/ /g' | awk '{print$2}') echo "$y_uid" >> ~/log/yt.log ... ...
if avconv (ffmpeg) process a small file (less then 30 minutes of encoding), the script works fine, but if avconv runs for hours, the next command "...youtube-uploader..." (that is a python based application) doesn't work (but if i try to launch it manually, it will go fine).
I have also tried to launch the next command inside a loop that check if the variable "$y_uid" is empty, so it will try to repeat youtube-uploader until it find a right value, but it will continue to stay in background and will try forever.. (and it is strange, because if i try to launch the command manually, it works fine..).
Summarizing, seems like that if avconv run for hours, the avconv process will generate a file that is not recognised or locked or a ghost file for the same script (but is recognised if the command is launched outside the script), if it is a small encoding, it will work fine.
Unfortunatelly It is difficult to debug or test, because i have every time to wait for hours, please help!
UPDATE
I think the problem is related at the buffer size of node.js OR some other buffer that store the standard output of ffmpeg. Just correct
avconv -i "$dir$video" -ss "$ss.000" -t $tt -threads 0 "$folder/$dif.webm"
in
avconv -i "$dir$video" -ss "$ss.000" -t $tt -threads 0 "$folder/$dif.webm" &> /dev/null
so all the ffmpeg output not full the buffer memory and everythings go well
-
ffmpeg "select" filter not working with MPEG-4 and "-vcodec copy"
5 novembre 2013, par Simone PalazzoI have an MPEG-4 video, which
mediainfo
describes as:Format : MPEG-4 Format profile : Base Media Codec ID : isom Overall bit rate : 6 772 Kbps Writing application : Lavf54.6.100 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L4.1 Format settings, CABAC : Yes Format settings, ReFrames : 4 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Bit rate : 25.0 Mbps Frame rate mode : Constant Frame rate : 29.000 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.554 Stream size : 500 MiB (98%) Writing library : x264 core 125 Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / nalyse=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=12 / lookahead_threads=2 / 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=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=25000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
(I removed some useless information)
What I'd like to do is remove the first, say, 200 frames from the video.
However, if I try with
ffmpeg
(version 0.11.1, compiled from source)ffmpeg -i video.mp4 -vf select='gte(n\,200)' -vcodec copy -strict -2 out.mp4
it doesn't work, the frames are exactly the same. If I remove the
-vcodec copy
part, what happens is that the first 190 frames are all the same (equal to the 190th one); so, they're not removed, but replaced with the 190th one.If I try the
select
filter to extract single images from the video, withffmpeg -i video.mp4 -vf "select=gte(n\,200)" %d.jpg
it works alright.
Does anybody have an idea why this happens?
Thank you!