Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
FFmpeg : Continuously download X minutes video from livestream ?
16 février 2017, par Dorin PleavaI want to download X minutes from a livestream continuously and overwrite the same file, meaning the file will always have the latest X minutes from the livestream.
Is there a way without calling the following command over and over again in a batch file? Something that runs continuously from FFMPEG?
-i http://iphone-streaming.ustream.tv/uhls/17074538/streams/live/iphone/playlist.m3u8 -t 60 -y -c:a copy MyVideo.mp4
-
ffmpeg output separate channel from an input with multiple channels
16 février 2017, par tiras muturii run this command to be able to stream a udp live stream to a http live stream that is playable using a mobile application that am building. its just a stream with audio streams only.
ffmpeg -i udp://@localhost:1111 -map 0:a http://localhost:8090/feed1.ffm
Input #0, mpegts, from 'udp://@localhost:1111': Duration: N/A, start: 54616.264622, bitrate: 768 kb/s Program 1 Metadata: service_name : Service 1 service_provider: TLK Stream #0:0[0x101]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 2 Metadata: service_name : Service 2 service_provider: TLK Stream #0:1[0x111]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 3 Metadata: service_name : Service 3 service_provider: TLK Stream #0:2[0x121]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 4 Metadata: service_name : Service 4 service_provider: TLK Stream #0:3[0x131]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 5 Metadata: service_name : Service 5 service_provider: TLK Stream #0:4[0x141]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 6 Metadata: service_name : Service 6 service_provider: TLK Stream #0:5[0x151]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 7 Metadata: service_name : Service 7 service_provider: TLK Stream #0:6[0x161]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 8 Metadata: service_name : Service 1 service_provider: TLK Stream #0:7[0x171]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s
i get this output
Stream mapping: Stream #0:0 -> #0:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #0:1 (mp2 (native) -> mp2 (native)) Press [q] to stop, [?] for help size= 100kB time=00:00:07.19 bitrate= 113.8kbits/s speed=3.01x video:0kB audio:84kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 18.358242%
i really want a way i can be able to map every input stream to have an output stream that can be accessed separately from the other like maybe if i need the first stream maybe i will just
ffplay http://localhost:8090/feed1.ffm
and if i need the 7th stream i will just
ffplay http://localhost:8090/feed7.ffm
Please can someone help me crack this issue. FFmpeg dont have complex examples for my current situation.
this is my header information
ubuntu@ip-localhost:~$ \ ffmpeg -i udp://@localhost:4000 \ -map 0:a:0 http://localhost:8090/feed1.ffm -map 0:a:1 http://localhost:8090/feed2.ffm -map 0:a:2 http://localhost:8090/feed3.ffm -map 0:a:3 http://localhost:8090/feed4.ffm -map 0:a:4 http://localhost:8090/feed5.ffm -map 0:a:5 http://localhost:8090/feed6.ffm -map 0:a:6 http://localhost:8090/feed7.ffm -map 0:a:7 http://localhost:8090/feed8.ffm
ffmpeg version 3.2.4-1~16.04.york0 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.1 (Ubuntu 5.4.1-5ubuntu2~16.04.york1) 20170210 configuration: --prefix=/usr --extra-version='1~16.04.york0' -- toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared libavutil 55. 34.101 / 55. 34.101 libavcodec 57. 64.101 / 57. 64.101 libavformat 57. 56.101 / 57. 56.101 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libavresample 3. 1. 0 / 3. 1. 0 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100
Input #0, mpegts, from 'udp://@localhost:1111': Duration: N/A, start: 60047.944622, bitrate: 768 kb/s Program 1 Metadata: service_name : Service 1 service_provider: TKL Stream #0:0[0x101]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 2 Metadata: service_name : Service 2 service_provider: TKL Stream #0:1[0x111]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 3 Metadata: service_name : Service 3 service_provider: TKL Stream #0:2[0x121]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 4 Metadata: service_name : Service 4 service_provider: TKL Stream #0:3[0x131]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 5 Metadata: service_name : Service 5 service_provider: TKL Stream #0:4[0x141]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 6 Metadata: service_name : Service 6 service_provider: TKL Stream #0:5[0x151]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 7 Metadata: service_name : Service 7 service_provider: TKL Stream #0:6[0x161]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Program 8 Metadata: service_name : Service 8 service_provider: TKL Stream #0:7[0x171]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 96 kb/s Output #0, ffm, to 'http://localhost:8090/feed1.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #0:0: Audio: mp2, 44100 Hz, mono, s16, 32 kb/s Metadata: encoder : Lavc57.64.101 mp2 Stream #0:1: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Output #1, ffm, to 'http://localhost:8090/feed2.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #1:0: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Output #2, ffm, to 'http://localhost:8090/feed3.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #2:0: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Output #3, ffm, to 'http://localhost:8090/feed4.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #3:0: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Output #4, ffm, to 'http://localhost:8090/feed5.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #4:0: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Output #5, ffm, to 'http://localhost:8090/feed6.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #5:0: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Output #6, ffm, to 'http://localhost:8090/feed7.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #6:0: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Output #7, ffm, to 'http://localhost:8090/feed8.ffm': Metadata: creation_time : now encoder : Lavf57.56.101 Stream #7:0: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s Metadata: encoder : Lavc57.64.101 mp2 Stream mapping: Stream #0:0 -> #0:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #0:1 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #1:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #2:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #3:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #4:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #5:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #6:0 (mp2 (native) -> mp2 (native)) Stream #0:0 -> #7:0 (mp2 (native) -> mp2 (native)) Press [q] to stop, [?] for help
thats my full console.
-
ffmpeg install on CentOS 64-bit 'install with -fPIC' error
16 février 2017, par ndmwebI get this error when attempting to compile ffmpeg on a 64bit CentOS machine.
Here are my ./configure options:
./configure --enable-shared --enable-gpl --enable-nonfree --enable-postproc --enable-swscale --enable-pthreads --enable-libx264 --enable-libxvid --enable-libvorbis --enable-libfaac --enable-libmp3lame --enable-libvpx
make
I get the following error when compiling the source:
/usr/bin/ld: /usr/local/lib/libvpx.a(vpx_codec.c.o): relocation R_X86_64_32 against .rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libvpx.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [libavcodec/libavcodec.so.54] Error 1
How do I get around this error, and get libvpx up and running with the latest ffmpeg on my 64-bit CentOS box?
-
What ffmpeg settings to ensure 0 duplicate frames and 0 dropped frames when capturing to mpeg-2 program stream using ffmpeg/avfoundation on Mac ?
16 février 2017, par aerodavoI'm trying to capture to a DVD compliant mpeg-2 file (ffmpeg:
-target ntsc-dvd
) from the HDMI output of a camcorder into a Magewell HDMI to USB 3.0 box into my Late 2012 15" non-retina MacBook Pro (quad core 2.3, 16gb ram, ssd), using ffmpeg/avfoundation.I've tried everything I can think of, or find online. I'm still getting duplicate and dropped frames, which either leads to audio/video sync issues, or audio dropouts, especially for longer recordings. I need this to be stable for recordings of up to 2.5 hours. This is the Terminal output for a 1.5 hour recording:
Lapaki:~ Lapaki$ /Users/Lapaki/Desktop/ffmpeg -f avfoundation -video_size 960x540 -pixel_format uyvy422 -framerate ntsc -i "XI:XI" -vf crop=iw-240:ih:120:0 -target ntsc-dvd -aspect 4:3 -q:v 3 -ab 256k /Users/Lapaki/Desktop/FF\ Test/`date +%F`\ `date +%H_%M_%S`.mpg ffmpeg version 3.2.3-tessus Copyright (c) 2000-2017 the FFmpeg developers built with Apple LLVM version 8.0.0 (clang-800.0.42.1) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb libavutil 55. 34.101 / 55. 34.101 libavcodec 57. 64.101 / 57. 64.101 libavformat 57. 56.101 / 57. 56.101 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100 Input #0, avfoundation, from 'XI:XI': Duration: N/A, start: 610606.984208, bitrate: N/A Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 960x540, 29.97 fps, 29.97 tbr, 1000k tbn, 1000k tbc Stream #0:1: Audio: pcm_f32le, 48000 Hz, stereo, flt, 3072 kb/s Output #0, dvd, to '/Users/Lapaki/Desktop/FF Test/2017-02-15 17_46_28.mpg': Metadata: encoder : Lavf57.56.101 Stream #0:0: Video: mpeg2video (Main), yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=2-31, 6000 kb/s, 29.97 fps, 90k tbn, 29.97 tbc Metadata: encoder : Lavc57.64.101 mpeg2video Side data: cpb: bitrate max/min/avg: 9000000/0/6000000 buffer size: 1835008 vbv_delay: -1 Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s Metadata: encoder : Lavc57.64.101 ac3 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native)) Stream #0:1 -> #0:1 (pcm_f32le (native) -> ac3 (native)) Press [q] to stop, [?] for help [swscaler @ 0x7fd315892800] Warning: data is not aligned! This can lead to a speedloss frame= 20 fps=0.0 q=3.0 size= 298kB time=00:00:00.65 bitrate=3721.4kbits/sframe= 35 fps= 35 q=3.0 size= 498kB time=00:00:01.13 bitrate=3591.2kbits/sframe= 50 fps= 33 q=3.0 size= 708kB time=00:00:01.64 bitrate=3519.4kbits/sframe= 65 fps= 32 q=3.0 size= 920kB time=00:00:02.16 ... bitrate=2721.7kbits/frame=162094 fps= 30 q=3.0 size= 1796936kB time=01:30:08.47 bitrate=2721.7kbits/frame=162109 fps= 30 q=3.0 size= 1797142kB time=01:30:08.98 bitrate=2721.8kbits/frame=162110 fps= 30 q=3.0 Lsize= 1797202kB time=01:30:09.01 bitrate=2721.9kbits/s dup=221 drop=0 speed= 1x video:1579050kB audio:168069kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.866632%
I deleted the middle part (denoted by the "..."), which is just a lot more of the same accumulating information. By the end there are 221 duplicate frames, and for this one I didn't get any dropped frames, but that happens every other time as well it seems.
With this code, the audio seems to stay in pretty good sync, but I get little dropouts every 30 seconds to a minute or so. On this recording, there are dropouts at:
00:00:43, 00:01:19, 00:01:47, 00:02:17, 00:03:18, ...
I stopped listening there; they happen at the end too, so I assume similarly spaced dropouts are happening throughout the file.
Is there some secret ffmpeg code to ensure there are no dropped or duplicate frames when capturing from a live source to dvd compliant mpeg-2 files?
When I convert from pretty much any type of file to mpeg-2 files using
-target ntsc-dvd
, the speed is something like 10x on this machine, so it seems like it would have no problem keeping up with a live source, right?I've also tried constant bit rate using
-b:v 5000k -minrate 5000k -maxrate 5000k -bufsize 2500k
, which also doesn't prevent dropped/duplicate frames.I've tried separating out the audio and video inputs, which doesn't solve it.
I've tried using
-vsync 0
on the video input, which does seem to solve the issue, because the output doesn't report dups/drops, but the audio/video drift out of sync more and more, so that hasn't worked either.Thanks so much for any help. I've been testing and testing and searching and searching for weeks...
-
Simulating TV noise
16 février 2017, par Alexander KulyakhtinI have googled a bit but was never able to find an answer. What should be my first approach to simulate a video and audio noise from TV on screen? I mean, when my TV antenna is removed but the TV is still on (like they show in Japanese horror movies sometimes). I can use ffmpeg or any other technique but what is the simplest possible form of the signal?