How to integrate ffmpeg with gltransition? - filter

I want to build FFMPEG with GLTransition filter. I followed the build instructions from this link
I also installed all the dependencies for FFMPEG build(GLU & GLEW libs) and configured it with EGL.
My configured command is:
./configure --extra-libs='-lGLEW -lEGL' --enable-filter=gltransition --disable-x86asm
After executing this command in Enabled Filter log GLTransition filter is there.
I have checked for GLTransition filter using command:
./ffmpeg -v 0 -filters | grep gltransition
but it shows nothing.
Then also cross checked using ffmpeg command below:
./ffmpeg -i media/0.mp4 -i media/1.mp4 -filter_complex gltransition -y out.mp4
but it shows error like,
[AVFilterGraph # 0x1febe80] No such filter: 'gltransition'
Error initializing complex filters.
Invalid argument.
Am I missed something?

Related

FFMPEG Overlay Not Found For Putting Watermark in Video

I am trying to put a logo in an rtmp stream using ffmpeg. My version of ffmpeg is ffmpeg version 4.3.1 Currently in my complex filter I have:
ffmpeg -re -i 'video.mp4' -filter_complex "tpad=start_duration=10:stop_duration=15:start_mode=add:color=black:stop_mode=add" -f flv rtmp://example.com/a/stream
And it works! But when I add :overlay=0:0 at the end:
ffmpeg -re -i 'video.mp4' -i image.jpeg -filter_complex "tpad=start_duration=10:stop_duration=15:start_mode=add:color=black:stop_mode=add:overlay=0:0" -f flv rtmp://example.com/a/stream
I get the errors:
[Parsed_tpad_0 # 0x555bc5d99f40] Option 'overlay' not found
[AVFilterGraph # 0x555bc5e7a980] Error initializing filter 'tpad' with args 'start_duration=10:stop_duration=15:start_mode=add:color=black:stop_mode=add:overlay=0:0'
Error initializing complex filters.
Option not found
What might I be doing wrong?
ffmpeg -re -i 'video.mp4' -i image.jpeg -filter_complex "tpad=start_duration=10:stop_duration=15:start_mode=add:color=black:stop_mode=add[bg];[bg][1]overlay" -f flv rtmp://example.com/a/stream
The overlay filter requires 2 inputs but you are only giving it 1.
Filters in the same linear chain are separated by commas (,) and distinct linear chains of filters are separated by semicolons (;). See FFmpeg Filtering Introduction.

How to get a lossless encoding with ffmpeg - libx265

I would like to convert 16 bits grayscale images in an HEVC/mkv video with the x265 encoder without loss, using ffmpeg. I use the monochrome12 profile. My first step is to convert images into yuv format:
ffmpeg -f image2 -i "C:\DATA FOLDER\images%d.png" video.yuv
And I try to convert it as a .mkv file, losslessly:
ffmpeg video.yuv video.mkv -c:v libx265 -x265-params "profile=monochrome12:crf=0:lossless=1:preset=veryslow:qp=0"
But I get
Unrecognized option '-lossless'
Error splitting the argument list : Option not found
When I don't write lossless=1 everything's right, but I don't manage to have a lossless video by this way.
thank you for your help.
It works for me if I make a few changes:
ffmpeg -i video.avi -c:v libx265 \
-x265-params "profile=monochrome12:crf=0:lossless=1:preset=veryslow:qp=0" \
video.mkv
This is like the command you've provided, except I'm using a different input format, and prepend -i to mark it as an input file.
I also put the output filename at the end, after the output options, otherwise they are not applied, and I get this warning among the output:
Trailing options were found on the commandline.
I don't think the command you gave would cause the error you get though.
libx265 will not give an error on params it doesn't recognise, but show a warning like:
[libx265 # 0x563e4520e740] Unknown option: lessloss.
I can reproduce your exact error by trying to add --lossless as a parameter to ffmpeg:
ffmpeg --lossless -i video.avi video.mkv
Unrecognized option '-lossless'.
Error splitting the argument list: Option not found

Can not set period/timeout option for ffmepg

I tried to capture streaming via rtsp and limit the clip duration under 3 sec
But the option doesn't work. The ffmpeg won't be terminated anymore.
Is there any workaround to fix the problem.
Because I have to run hundreds of similar commands in a batch with Python script.
ffmpeg -loglevel verbose -i rtsp://172.19.1.42/live.sdp -acodec copy -vcodec copy c0_s1_h264_640x480_30_vbr_500_99_40000000.mp4 -timeout 3 -y
$ ffmpeg -h ffmpeg version 1.2.4 Copyright (c) 2000-2013 the FFmpeg
developers built on Nov 22 2013 11:59:59 with Apple LLVM version 5.0
(clang-500.2.79) (based on LLVM 3.3svn)
The detailed log at https://gist.github.com/poc7667/8234701
From your console output:
Trailing options were found on the commandline.
Option placement matters:
ffmpeg [global options] [input options] -i input [output options] output
How is ffmpeg supposed to interpret your trailing options? Your command should look like:
ffmpeg -y -loglevel verbose -timeout 3 -i rtsp://172.19.1.42/live.sdp -acodec copy -vcodec copy c0_s1_h264_640x480_30_vbr_500_99_40000000.mp4
See the FFmpeg RTSP Protocol Documentation for more information, but you should refer to your local copy of your docs since the online docs are synced with current code from Git master and your ffmpeg version is old.
You need to use stimeout parameter:
ffmpeg -loglevel verbose -i rtsp://172.19.1.42/live.sdp -acodec copy -vcodec copy c0_s1_h264_640x480_30_vbr_500_99_40000000.mp4 -stimeout 3000 -y
Note that you should use microseconds with stimeout param

How to use avconv filters after encoding?

I have avconv command
avconv -i file -s [new size options] -vf "[filters]" /root/converted/1.mp4
Avconv use filters before encoding, but I need after. I need one avconv command:
Resize video first
Use filters second
How can I do it?
Without knowing input format (you did not provide it), this is a best guess what to do:
avconv -i file -y -s [new size options] - | avconv -i - -vf "[filters]" /root/converted/1.mp4

FFmpeg/libavcodec failing for asv1 conversion using PHPVideoToolkit

It seems that I can not get libavcodec running with my install of ffmpeg. I say 'it seems' because the searching I have done based on the following error message has gotten me to that point:
PHPVideoToolkit Error: Execute error. Output for file "/home/clrock/public_html/drupal-7.14/sites/default/files/img/videos/original/StoryboardMovie.mp4" was found, but the file contained no data. Please check the available codecs compiled with FFmpeg can support this type of conversion. You can check the encode decode availability by inspecting the output array from PHPVideoToolkit::getFFmpegInfo().
The ffmpeg command is
/usr/local/bin/ffmpeg \
-i '/home/clrock/public_html/drupal-7.14/sites/default/files/img/videos/original/StoryboardMovie.mp4' \
-strict experimental -vcodec 'asv1' -s '640x480' -acodec 'aac' -ac '2' \
/tmp/1343067407-500d950fbd290.3gp
I can not seem to find out how to get ffmpeg to configure with libavcodec. It seems all of the necessary files are there in /usr/src/ffmpeg-0.7.12/libavcodec.
ffmpeg can make mp4 and flv files fine, only when using asv1 does it hang up.
I only needed to change the ouput settings. For webm:
vcodec=libvpx acodec=vorbis
Form Mp4
vcodec=libx264 acodec=libmp3lame
With Mp4, I couldn't use the libx264-hq preset as something was missing. I'm not sure what, but it's good to know I don't need it.
Thanks.

Resources