Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
FFmpeg change audio sample rate
18 juin 2017, par Val PanI need to increase the sample rate by 10%. Sample rates of input files are unknown.
I found this. Example for 1 file:
ffmpeg -i xxx.mp3 -filter:a "asetrate=$(ffprobe -v error -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 xxx.mp3)*1.1" -y xxx1.mp3
But is is not working and creates 0kb file.
LOG:
[asetrate @ 00000000024242e0] [Eval @ 00000000005fde80] Undefined constant or missing '(' in 'ffprobe-verror-show_entriesstream=sample_rate-ofdefault=noprint_wrappers=1' [asetrate @ 00000000024242e0] Unable to parse option value "$(ffprobe -v error -show_entries stream=sample_rate -of default=noprint_wrappers=1" [Parsed_asetrate_0 @ 0000000000e6cb20] Option 'nokey' not found [AVFilterGraph @ 0000000002419ca0] Error initializing filter 'asetrate' with args '$(ffprobe -v error -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 xxx.mp3)*1.1' Error reinitializing filters! Failed to inject frame into filter network: Option not found Error while processing the decoded data for stream #0:0 Conversion failed!
-
ffmpeg and pulse audio creating buzzy speech
17 juin 2017, par flashapeI'm attempting to record video and audio from an ec2 instance (Ubuntu 16.04), using xvfb and pulse audio. Everything works fine, except that the output file contains "buzzy" speech (not sure if this is what "clipping" is?). This happens using either aac or mp3 audio codecs.
Sample audio file: http://s000.tinyupload.com/index.php?file_id=86237391396073526211
ffmpeg command:
ffmpeg \ -f x11grab -framerate 30 -video_size ${SCREEN_WIDTH}x${SCREEN_HEIGHT} -i :1.0 \ -f pulse -i default \ -c:v libx264 -preset veryfast -maxrate 2500k -bufsize 2500k -vf "format=yuv420p" -g 60 \ -c:a aac -strict -2 -channel_layout stereo -ab 256k -ar 48000 -bufsize 512k -ac 2 \ -flags +global_header -f flv "test.mp4"
The output from ffmpeg when I run the command:
Input #0, x11grab, from ':1.0': Duration: N/A, start: 1497567394.762052, bitrate: N/A Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1360x764, 30 fps, 30 tbr, 1000k tbn, 30 tbc Guessed Channel Layout for Input Stream #1.0 : stereo Input #1, pulse, from 'default': Duration: N/A, start: 1497567396.743667, bitrate: 1536 kb/s Stream #1:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s [libx264 @ 0x1977d20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 0x1977d20] profile High, level 3.2 [libx264 @ 0x1977d20] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=1 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=1 keyint=60 keyint_min=6 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2500 vbv_bufsize=512 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00 Output #0, flv, to 'test.mp4': Metadata: encoder : Lavf56.40.101 Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1360x764, q=-1--1, max. 2500 kb/s, 30 fps, 1k tbn, 30 tbc Metadata: encoder : Lavc56.60.100 libx264 Stream #0:1: Audio: aac ([10][0][0][0] / 0x000A), 48000 Hz, stereo, fltp, 256 kb/s Metadata: encoder : Lavc56.60.100 aac Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
Based on various posts, I thought it might be something in the pulse config, particularly the "resample-method" setting, but that doesn't appear to do anything. Here is how the /etc/pulse/daemon.conf config file currently stands:
; daemonize = no ; fail = yes ; allow-module-loading = yes ; allow-exit = yes ; use-pid-file = yes ; system-instance = no ; local-server-type = user ; enable-shm = yes ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB ; lock-memory = no ; cpu-limit = no ; high-priority = yes ; nice-level = -11 ; realtime-scheduling = yes ; realtime-priority = 5 ; exit-idle-time = 20 ; scache-idle-time = 20 ; dl-search-path = (depends on architecture) ; load-default-script-file = yes ; default-script-file = /etc/pulse/default.pa ; log-target = auto ; log-level = notice ; log-meta = no ; log-time = no ; log-backtrace = 0 ; resample-method = speex-float-1 ; resample-method = speex-float-10 resample-method = speex-fixed-10 ; enable-remixing = yes enable-lfe-remixing = yes ; lfe-crossover-freq = 120 flat-volumes = no ; rlimit-fsize = -1 ; rlimit-data = -1 ; rlimit-stack = -1 ; rlimit-core = -1 ; rlimit-as = -1 ; rlimit-rss = -1 ; rlimit-nproc = -1 ; rlimit-nofile = 256 ; rlimit-memlock = -1 ; rlimit-locks = -1 ; rlimit-sigpending = -1 ; rlimit-msgqueue = -1 ; rlimit-nice = 31 ; rlimit-rtprio = 9 ; rlimit-rttime = 200000 ; default-sample-format = s16le default-sample-format = s32le default-sample-rate = 44100 ; default-sample-rate = 48000 ; alternate-sample-rate = 48000 alternate-sample-rate = 44100 ; default-sample-channels = 2 ; default-channel-map = front-left,front-right ; default-fragments = 4 ; default-fragment-size-msec = 25 ; default-fragments = 4 ; default-fragment-size-msec = 25 ; enable-deferred-volume = yes deferred-volume-safety-margin-usec = 1 ; deferred-volume-extra-delay-usec = 0
Edit:
Ok, updated the ffmpeg command to capture only the audio, but still have the same issue:
ffmpeg \ -f pulse -i default \ -c:a aac -strict -2 -channel_layout stereo -ab 256k -ar 48000 -bufsize 512k -ac 2 \ test.aac
I do get some interesting messages in the output about timestamps being off:
[aac @ 0x12a4900] Queue input is backward in timeits/s [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 182857 >= 175924 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 182857 >= 176948 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 182857 >= 177972 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 182857 >= 178996 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 182857 >= 180020 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 182857 >= 181044 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 182857 >= 182068 [aac @ 0x12a4900] Queue input is backward in time [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 183406 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 184430 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 185454 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 186478 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 187502 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 188526 [aac @ 0x12a4900] Queue input is backward in time [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 189550 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 190574 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 169622 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 170646 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 171670 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 172694 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 173718 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 174742 [aac @ 0x12a4900] Queue input is backward in time [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 175766 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 176790 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 157020 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 158083 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 159107 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 160131 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 161155 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 162179 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 163203 [aac @ 0x12a4900] Queue input is backward in time [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 164227 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 165251 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 154697 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 159400 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 160424 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 161448 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 162472 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 163496 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 164520 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 165544 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 166568 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 171795 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 172819 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 173843 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 174867 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 175891 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 176915 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 177939 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 178963 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 187279 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 189829 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 190853 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 191877 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 193354 >= 192901 [aac @ 0x12a4900] Queue input is backward in time Last message repeated 2 times [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 216609 >= 216172 [aac @ 0x12a4900] Queue input is backward in time [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 216609 >= 214950 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 216609 >= 214933 [adts @ 0x12a35a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 216609 >= 214836
-
expected end of line but found unknown token
17 juin 2017, par Denzil WilliamsOk so after days of searching, here I am. I am new to ffmpeg, applescript, and terminal.
I want to use ffmpeg to batch convert a group of selected files in any folder. I was successful in doing this by opening the terminal at the folder location and using this code:
for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done
which finds all flv files, and converts it to 256 bit rate mp3, then deletes the original files.
Now I want it to be more automated, so I looked into creating a service. I tried running an apple script through automator, which I want it to open the terminal at the folder location the file then run the code to convert the files. Here's the code I attempted:
tell application "Finder" to set currentFolder to target of front Finder window as text set theWin to currentFolder's POSIX path tell application "Terminal" if not (exists window 1) then reopen activate do script "cd " & quoted form of theWin & ";clear" in window 1 tell application "Terminal" do script "for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done" end tell end tell
The first part of code opens up terminal at the folder location just fine. But when I add the part with the ffmpeg code it crashes. The error is apparently with the "$", those are what light up as the error, the error message says "Expected end of line, but found unknown token". Looking for some assistance please. I need the "$" because those are what make the loop work for renaming the files and such.
-
ffmpeg map filter option
17 juin 2017, par StrangerWhat does below ffmpeg option do?
-map [v] -map [a]
and
-map 0
I have read this but still not able to understand exactly what it does and when to use them?
-
ffmpeg - AVPixelFormat, what is "smaples" means in the documentation ?
17 juin 2017, par dafnahaktanaI did not understand the documentation , for example:
AV_PIX_FMT_YUV422P planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
I didn't understand the meaning of "(1 Cr & Cb sample per 2x1 Y samples) ", and what does it mean 4:2:2 ? I could not find explanation anywhere.
Also , I see there are types like AV_PIX_FMT_YUV420P that have 12bpp. Does that mean that each pixel is represented by 12 bit ? if so, how is it represented ? Should I allocate two bytes for each pixel and ignore the last 4 bits ? or I should allocate something like ceil((#pixels)*1.5) bytes ?