Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
How save an audio buffer with Fluent FFmpeg
17 juin 2016, par LukeI have a
Buffer
object that contains audio data and I'm wondering if I can save thisBuffer
through Fluent FFmpeg without writing it to a file temporary first.I came across this other question: fluent-ffmpeg module: "end" event does not fire
Which seems to do what I need but with video, however, this technique doesn't seem to work for me. I get the following error:
ffmpeg write error 'Input stream error: not implemented'
How can I pipe a
Buffer
directly to Fluent FFmpeg without writing it to a temporary file first? -
FFmpeg Hardware Acceleration with NVENC produces Half Green output video
17 juin 2016, par Dan SandlandUsing the FFmpeg build found here: https://github.com/illuspas/ffmpeg-hw-win32
gcc 5.3.0 --enable-nvenc nvidia_video_sdk_6.0.1 --enable-libmfx Intel(R)_Media_SDK_2016.0.1 --enable-libfdk-aac 0.1.4 --enable-libspeex 1.2rc1 --enable-libx264 1:148.20150725 --enable-libopenh264 1.5.0 --enable-libx265 1.8 --enable-libopus 1.1.2 --enable-libmp3lame 3.99.5 --enable-libkvazaar 0.8.2
./configure --prefix=/home/aliang/FFmpeg/x86_64 --enable-small --disable-debug --disable-doc --arch=x86_64 --cc='ccache x86_64-w64-mingw32-gcc' --cross-prefix=x86_64-w64-mingw32- --enable-cross-compile --target-os=mingw32 --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libspeex --enable-libx264 --enable-libx265 --enable-libmfx --enable-nvenc --enable-libopenh264 --enable-libkvazaar --enable-gpl --enable-nonfree
I'm running Windows on a MacBook Pro. I also tried with a more recent build and had the same output.
Input video is from sample-videos.com.
The ffmpeg command I am running is:
ffmpeg -y -i sample.mp4 -vcodec nvenc_h264 -pixel_format yuv420p -f mp4 sample-out-nvenc.mp4
sample-out-nvenc.mp4 looks like this via ffplay or vlc:
When I grab a frame using jpeg2, the colors appear normal, but the height is squished.
ffmpeg -y -ss 15.5 -i sample.mp4 -vframes 1 -s 480x300 -f image2 grab.jpg
The ffprobe results for the output (sample-out-nvenc.mp4):
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample-out-nvenc.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.25.100 Duration: 00:00:31.02, start: 0.021333, bitrate: 1994 kb/s Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 1650 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 342 kb/s (default) Metadata: handler_name : SoundHandler
Lastly the output from the nvenc encoding command:
ffmpeg -y -i sample.mp4 -vcodec nvenc_h264 -pixel_format yuv420p -f mp4 sample-out-nvenc.mp4 ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: --prefix=/home/aliang/FFmpeg/x86_64 --enable-small --disable-debug --disable-doc --arch=x86_64 --cc='ccache x86_64-w64-mingw32-gcc' --cross-prefix=x86_64-w64-mingw32- --enable-cross-compile --target-os=mingw32 --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libspeex --enable-libx264 --enable-libx265 --enable-libmfx --enable-nvenc --enable-libopenh264 --enable-libkvazaar --enable-gpl --enable-nonfree libavutil 55. 17.103 / 55. 17.103 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 creation_time : 1970-01-01 00:00:00 encoder : Lavf53.24.2 Duration: 00:00:31.00, start: 0.000000, bitrate: 1353 kb/s Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 966 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : SoundHandler Output #0, mp4, to 'sample-out-nvenc.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.25.100 Stream #0:0(und): Video: h264 (nvenc_h264) ([33][0][0][0] / 0x0021), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 2000 kb/s, 25 fps, 12800 tbn, 25 tbc (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler encoder : Lavc57.24.102 nvenc_h264 Side data: unknown side data type 10 (24 bytes) Stream #0:1(und): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, 5.1, fltp, 341 kb/s (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : SoundHandler encoder : Lavc57.24.102 aac Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (nvenc_h264)) Stream #0:1 -> #0:1 (aac (native) -> aac (native)) Press [q] to stop, [?] for help frame= 774 fps=253 q=-0.0 Lsize= 7551kB time=00:00:30.99 bitrate=1995.6kbits/s speed=10.1x video:6236kB audio:1297kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.243011% [aac @ 000001cdd9900520] Qavg: 743.457
-
Use Ffmpeg on android with linux commands
17 juin 2016, par soheilaI'm new programmer for android. I want to use
ffmpeg
with android.But my question is can I use
ffpmeg
on android programming with Linux commands? for example use thisffmpeg
code :ffmpeg -framerate 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
on android programming??
-
libx265 motion compensation and CU traverse
17 juin 2016, par ArianaI'm trying to play with the H.265 motion compensation and search (HEVC- libx265 implementation from here: https://bitbucket.org/multicoreware/x265/downloads). I need to slightly extend the edge extension search, and fill the macro block with left-most pixels as if my sample videos are like cylinder (rightmost is connected to leftmost).
What I need to do is basically this:
One way to do that is to modify the edge extension area (which is already in the code, in the
frameFilter.cpp
), and do that for rightmost and fill parts of blocks which are out with leftmost pixels. I identified the piece of code here which apparently is responsible for that. Can someone help me with implementing this feature?if ((col == 0) | (col == m_frameFilter->m_numCols - 1)) { // TODO: improve by process on Left or Right only primitives.extendRowBorder(reconPic->getLumaAddr(m_rowAddr), stride, reconPic->m_picWidth, realH, reconPic->m_lumaMarginX); if (m_frameFilter->m_param->internalCsp != X265_CSP_I400) { primitives.extendRowBorder(reconPic->getCbAddr(m_rowAddr), strideC, reconPic->m_picWidth >> hChromaShift, realH >> vChromaShift, reconPic->m_chromaMarginX); primitives.extendRowBorder(reconPic->getCrAddr(m_rowAddr), strideC, reconPic->m_picWidth >> hChromaShift, realH >> vChromaShift, reconPic->m_chromaMarginX); } } // Extra Left and Right border on first and last CU if ((col == 0) | (col == m_frameFilter->m_numCols - 1)) { copySizeY += lumaMarginX; copySizeC += chromaMarginX; } // First column need extension left padding area and first CU if (col == 0) { pixY -= lumaMarginX; pixU -= chromaMarginX; pixV -= chromaMarginX; }
-
Push multiple videos after each other
16 juin 2016, par hansa testai'm trying to understand to do something simple, but i'm not able to find out example or understand how to do that. Let say i have 10 videos inside my folder:
01.mp4 02.mp4 03.mp4 04.mp4 05.mp4 06.mp4 07.mp4 08.mp4 09.mp4 10.mp4
is it possible to push the video as rtmp to my server where it push first video 01.mp4 and when video 01.mp4 is done it start doing same with video 02.mp4 etc..?
if yes can you please show me how so i can learn doing that?