1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

7537 Commits

Author SHA1 Message Date
Paul B Mahol
d9a52b0bbf avfilter/f_drawgraph: add rate/r option 2020-01-14 09:54:53 +01:00
Jun Zhao
692f0519bb lavfi/spp: add "quality" option in runtime change path
it's stranage to use option "level" in runtime change path but used
"quality" in option, add "quality" in runtime change path, it's more
intuitive and keep the "level" for compatibility.

Reviewe-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Paul B Mahol
1a7f4a122e avfilter: add freezeframes video filter 2020-01-11 19:05:17 +01:00
Gyan Doshi
c11b3253a4 doc/general: update table AV1 entry for librav1e 2020-01-11 11:01:17 +05:30
Jun Zhao
883e6af710 doc/general: Add avs2 decoder/encoder entry
Add avs2 decoder/encoder entry

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-11 10:51:52 +05:30
Alexandre Heitor Schmidt
ae436cc5e4 avformat/img2dec: add option to provide metadata fields related to input path
libavformat/img2.h: New field export_path_metadata to
VideoDemuxData to only allow the use of the extra metadata
upon explicit user request, for security reasons.

libavformat/img2dec.c: Modify image2 demuxer to make available
two special metadata entries called lavf.image2dec.source_path
and lavf.image2dec.source_basename, which represents, respectively,
the complete path to the source image for the current frame and
the basename i.e. the file name related to the current frame.
These can then be used by filters like drawtext and others. The
metadata fields will only be available when explicitly enabled
with image2 option -export_path_metadata 1.

doc/demuxers.texi: Documented the new metadata fields available
for image2 and how to use them.

doc/filters.texi: Added an example on how to use the new metadata
fields with drawtext filter, in order to plot the input file path
to each output frame.

Usage example:

ffmpeg -f image2 -export_path_metadata 1 -pattern_type glob
 -framerate 18 -i '/path/to/input/files/*.jpg'
 -filter_complex drawtext="fontsize=40:fontcolor=white:
 fontfile=FreeSans.ttf:borderw=2:bordercolor=black:
 text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=5:y=50"
 output.avi

Fixes #2874.

Signed-off-by: Alexandre Heitor Schmidt <alexandre.schmidt@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-10 23:08:18 +01:00
Gyan Doshi
22a06a539d avfilter/f_metadata: allow direct flushing when printing to file
Useful for monitoring sparse data in realtime
2020-01-10 21:44:26 +05:30
Paul B Mahol
52bf43eb49 avfilter/af_afir: add support for switching impulse response streams at runtime
Currently, switching is not free of artifacts, to be resolved later.
2020-01-10 13:14:54 +01:00
Paul B Mahol
03a7240a73 avfilter/af_afir: add support for even smaller partition sizes 2020-01-10 13:05:21 +01:00
Gyan Doshi
5bd001043d avfilter/aformat: add shorthand names for options 2020-01-08 11:15:13 +05:30
Guo, Yejun
37d24a6c8f vf_dnn_processing: add support for more formats gray8 and grayf32
The following is a python script to halve the value of the gray
image. It demos how to setup and execute dnn model with python+tensorflow.
It also generates .pb file which will be used by ffmpeg.

import tensorflow as tf
import numpy as np
from skimage import color
from skimage import io
in_img = io.imread('input.jpg')
in_img = color.rgb2gray(in_img)
io.imsave('ori_gray.jpg', np.squeeze(in_img))
in_data = np.expand_dims(in_img, axis=0)
in_data = np.expand_dims(in_data, axis=3)
filter_data = np.array([0.5]).reshape(1,1,1,1).astype(np.float32)
filter = tf.Variable(filter_data)
x = tf.placeholder(tf.float32, shape=[1, None, None, 1], name='dnn_in')
y = tf.nn.conv2d(x, filter, strides=[1, 1, 1, 1], padding='VALID', name='dnn_out')
sess=tf.Session()
sess.run(tf.global_variables_initializer())
graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'halve_gray_float.pb', as_text=False)
print("halve_gray_float.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate halve_gray_float.model\n")
output = sess.run(y, feed_dict={x: in_data})
output = output * 255.0
output = output.astype(np.uint8)
io.imsave("out.jpg", np.squeeze(output))

To do the same thing with ffmpeg:
- generate halve_gray_float.pb with the above script
- generate halve_gray_float.model with tools/python/convert.py
- try with following commands
  ./ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native out.native.png
  ./ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.pb:input=dnn_in:output=dnn_out:dnn_backend=tensorflow out.tf.png

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2020-01-07 10:51:38 -03:00
Guo, Yejun
04e6f8a143 vf_dnn_processing: remove parameter 'fmt'
do not request AVFrame's format in vf_ddn_processing with 'fmt',
but to add another filter for the format.

command examples:
./ffmpeg -i input.jpg -vf format=bgr24,dnn_processing=model=halve_first_channel.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
./ffmpeg -i input.jpg -vf format=rgb24,dnn_processing=model=halve_first_channel.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2020-01-07 10:35:59 -03:00
Paul B Mahol
e21ba176c9 avfilter/af_sidechaincompress: add support for commands 2020-01-06 19:40:07 +01:00
Paul B Mahol
51927d33b7 doc/filters: mention commands for crystalizer filter 2020-01-06 19:08:56 +01:00
Gyan Doshi
d0b0e8ecc8 doc/filters: indicate commands for scale2ref 2020-01-06 21:10:09 +05:30
Gyan Doshi
71ac3b6edc doc/filters: indicate commands for zscale 2020-01-06 21:09:00 +05:30
Paul B Mahol
27ec72db06 avfilter/af_dynaudnorm: add support for commands 2020-01-06 14:23:53 +01:00
Limin Wang
1e3f4b5f19 doc/filters: add entry for mean and stdev in showinfo
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro>
2020-01-06 11:38:16 +05:30
Gyan Doshi
8aa3c09c1b doc/volume: correct placement of replaygain_noclip
In the merge commit 878f8b0d26, entry for replaygain_noclip
was placed in commands, which it is not, instead of among
the options.
2020-01-05 21:46:08 +05:30
Gyan Doshi
fa677750de doc/ffmpeg: document value source for -force_key_frames
Also clarify behaviour in case of specified timestamps
2020-01-05 10:53:46 +05:30
Carl Eugen Hoyos
f7c945abc0 doc: Fix a typo. 2020-01-04 20:58:10 +01:00
Paul B Mahol
c8253cb332 avfilter/af_dynaudnorm: implement threshold option 2020-01-04 18:17:32 +01:00
Marton Balint
944203270d avdevice/decklink: deprecate the -list_devices option
The user should use ffmpeg -sources decklink or ffmpeg -sinks decklink instead.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-03 18:13:22 +01:00
Marton Balint
2b7097ef27 avdevice/decklink_dec: remove -bm_v210 option
Deprecated since Sep 28, 2017.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-03 18:13:22 +01:00
Marton Balint
bc17b831dd doc/muxers: fix order of options and examples for image2 muxer
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-03 11:23:55 +01:00
James Almer
278a91f8fe avcodec/libx265: add a qp option and apply the relevant global AVCodecContext settings to the encoder context
Signed-off-by: James Almer <jamrial@gmail.com>
2020-01-01 13:48:02 -03:00
James Almer
3c22436ddf avcodec/libx265: apply some global AVCodecContext settings to the encoder context
There's no reason to ignore them if set.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-01-01 13:25:18 -03:00
Marton Balint
f1353ce222 avdevice/xcbgrab: capture the full desktop if video_size is not specified
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-12-30 23:32:27 +01:00
Paul B Mahol
f651b18c19 avfilter/vf_histogram: add envelope to thistogram filter 2019-12-30 17:21:35 +01:00
Zhao Zhili
b2491566a6 avfilter/buffersrc: deprecate sws_param option 2019-12-30 10:41:07 +01:00
Paul B Mahol
cc43c2f29a avfilter: add thistogram video filter 2019-12-29 15:33:55 +01:00
Paul B Mahol
6399eed48a avfilter/vf_waveform: implement tint options 2019-12-28 21:51:40 +01:00
Paul B Mahol
2736dc0564 avfilter/vf_vectorscope: rename gray mode to tint mode 2019-12-28 14:01:15 +01:00
Paul B Mahol
29b765d657 avfilter/vf_vectorscope: add invert graticule 2019-12-28 12:32:43 +01:00
Michael Niedermayer
45259a0ee4 avutil/eval: Add av_expr_count_func() similar to av_expr_count_vars()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-28 11:20:48 +01:00
Paul B Mahol
6c883e214a avfilter/vf_vibrance: add support for commands 2019-12-27 21:31:04 +01:00
Paul B Mahol
50cfe9662d avfilter/vf_il: add support for commands 2019-12-27 21:17:00 +01:00
Paul B Mahol
5fb37598ad avfilter/af_stereowiden: add support for commands 2019-12-27 21:03:29 +01:00
Paul B Mahol
954637805d avfilter/af_extrastereo: add support for commands 2019-12-27 20:57:06 +01:00
Paul B Mahol
fad62eebee avfilter/vf_neighbor: add support for commands 2019-12-27 20:21:20 +01:00
Marton Balint
16685114d5 avutil/buffer: add av_buffer_pool_buffer_get_opaque
In order to access the original opaque parameter of a buffer in the buffer
pool. (The buffer pool implementation overrides the normal opaque parameter but
also saves it so it is accessible).

v2: add assertion check before dereferencing the BufferPoolEntry.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-12-26 00:47:24 +01:00
Wonkap Jang
a86bb2f606 doc/encoders: correct the description for ts_target_bitrate
ts_target_bitrate is in kbps, not bps. This commit clarifies the unit
and modifies the example to match the description.

Signed-off-by: James Zern <jzern@google.com>
2019-12-20 14:37:35 -05:00
Paul B Mahol
786a2daa3d avfilter/vf_readeia608: rewrite processing, make extracting more robust
Lots of options are now obsolete.
2019-12-20 18:08:46 +01:00
Xinpeng Sun
2e2dfe6673 avfilter: Add tonemap vaapi filter for H2S
It performs HDR(High Dynamic Range) to SDR(Standard Dynamic Range) conversion
with tone-mapping. It only supports HDR10 as input temporarily.

An example command to use this filter with vaapi codecs:
FFMPEG -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format vaapi \
-i INPUT -vf 'tonemap_vaapi=format=p010' -c:v hevc_vaapi -profile 2 OUTPUT

Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com>
Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-12-17 07:49:49 +08:00
Marton Balint
6498522bef avfilter/vf_tinterlace: add support for bypassing already interlaced frames
The old interlace filter worked this way before it was merged with tinterlace.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-12-15 00:23:01 +01:00
Paul B Mahol
824324db41 avfilter/vf_datascope: add decimal output 2019-12-13 12:51:47 +01:00
Jun Zhao
952fd0c768 lavf/libsrt: enable other encryption parameters
Enable the SRTO_ENFORCEDENCRYPTION/SRTO_KMREFRESHRATE/
SRTO_KMPREANNOUNCE for srt encryption control.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-12-11 14:23:26 +08:00
Jun Zhao
8d823e6005 lavf/libsrt: add linger parameter to libsrt
add linger parameter to libsrt, it's setting the number of seconds
that the socket waits for unsent data when closing.

Reviewed-by: Andriy Gelman <andriy.gelman@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-12-11 14:23:26 +08:00
Gyan Doshi
1b4f473d18 avfilter/scale.c: factorize ff_scale_eval_dimensions
Adjustment of evaluated values shifted to ff_adjust_scale_dimensions
Shifted code for force_original_aspect_ratio and force_divisble_by from
vf_scale so it is now available for scale_cuda, scale_npp and
scale_vaapi as well.
2019-12-08 16:12:31 +05:30
leozhang
0c7f9f714d avfilter/vf_yaepblur: add yaepblur filter
Signed-off-by: leozhang <leozhang@qiyi.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-06 11:25:29 +01:00