FFmpegffmpeg使用drawtext过滤器在视频上叠加文字
Posted 郭老二
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpegffmpeg使用drawtext过滤器在视频上叠加文字相关的知识,希望对你有一定的参考价值。
1、测试命令
ffmpeg -i 640-480p.mp4 -t 10 -vf "drawtext=fontfile=FreeMono.ttf:fontsize=100:x=10:y=100:fontcolor=red:box=1:text=\'%n\'" test.mp4
2、错误处理
2.1 缺少过滤器“drawtext”
1)报错
运行命令时报错:
[AVFilterGraph @ 0x58a4f0] No such filter: \'drawtext\'
2)原因
说明FFmpeg编译时,没有添加对drawtext的支持。
3)解决
重新编译FFmpeg,在配置时添加对drawtext的支持:–enable-libfreetype
我的configure:
configure --prefix=/home/ubuntu/libs/ffmpeg --enable-shared --enable-libx264 --enable-libx265 --enable-gpl --enable-libfreetype
make -j8
make install
注意:–prefix=/home/ubuntu/libs/ffmpeg是本人设置的安装目录,根据自己环境修改
2.2 缺少字符库文件
FFmpegFFmpeg 帮助文档使用
FFmpeg 系列文章目录
【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境
【FFmpeg】FFmpeg 相关术语简介
【FFmpeg】FFmpeg 相关术语简介 二
文章目录
一、ffmpeg 命令帮助文档
查询 ffmpeg 基本信息 :
ffmpeg -h
查询 ffmpeg 高级信息 :
ffmpeg -h long
查询 ffmpeg 所有信息 :
ffmpeg -h full
三种帮助信息的关系 : 所有信息 包含 高级信息 , 高级信息 包含 基本信息 ;
1、FFmpeg 命令帮助基本信息
将 ffmpeg 基本信息输出到文件中 : 将信息输出到文件中 , 使用 > 符号 , 后面跟上文件名称 , 就会将信息输出到该文件名对应的目录中 ;
ffmpeg -h > ffmpeg_h.txt
在 " D:\\ffmpeg " 目录下执行 上述命令 , 在该目录下生成了 ffmpeg_h.txt 文件 ;
ffmpeg_h.txt 文件中的输出内容如下 :
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Getting help:
-h -- print basic options
-h long -- print more options
-h full -- print all options (including all format and codec specific options, very long)
-h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol
See man ffmpeg for detailed description of the options.
Print help / information / capabilities:
-L show license
-h topic show help
-? topic show help
-help topic show help
--help topic show help
-version show version
-buildconf show build configuration
-formats show available formats
-muxers show available muxers
-demuxers show available demuxers
-devices show available devices
-codecs show available codecs
-decoders show available decoders
-encoders show available encoders
-bsfs show available bit stream filters
-protocols show available protocols
-filters show available filters
-pix_fmts show available pixel formats
-layouts show standard channel layouts
-sample_fmts show available audio sample formats
-colors show available color names
-sources device list sources of the input device
-sinks device list sinks of the output device
-hwaccels show available HW acceleration methods
Global options (affect whole program instead of just one file):
-loglevel loglevel set logging level
-v loglevel set logging level
-report generate a report
-max_alloc bytes set maximum size of a single allocated block
-y overwrite output files
-n never overwrite output files
-ignore_unknown Ignore unknown stream types
-filter_threads number of non-complex filter threads
-filter_complex_threads number of threads for -filter_complex
-stats print progress report during encoding
-max_error_rate maximum error rate ratio of decoding errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.
-bits_per_raw_sample number set the number of bits per raw sample
-vol volume change audio volume (256=normal)
Per-file main options:
-f fmt force format
-c codec codec name
-codec codec codec name
-pre preset preset name
-map_metadata outfile[,metadata]:infile[,metadata] set metadata information of outfile from infile
-t duration record or transcode "duration" seconds of audio/video
-to time_stop record or transcode stop time
-fs limit_size set the limit file size in bytes
-ss time_off set the start time offset
-sseof time_off set the start time offset relative to EOF
-seek_timestamp enable/disable seeking by timestamp with -ss
-timestamp time set the recording timestamp ('now' to set the current time)
-metadata string=string add metadata
-program title=string:st=number... add program with specified streams
-target type specify target file type ("vcd", "svcd", "dvd", "dv" or "dv50" with optional prefixes "pal-", "ntsc-" or "film-")
-apad audio pad
-frames number set the number of frames to output
-filter filter_graph set stream filtergraph
-filter_script filename read stream filtergraph description from a file
-reinit_filter reinit filtergraph on input parameter changes
-discard discard
-disposition disposition
Video options:
-vframes number set the number of video frames to output
-r rate set frame rate (Hz value, fraction or abbreviation)
-fpsmax rate set max frame rate (Hz value, fraction or abbreviation)
-s size set frame size (WxH or abbreviation)
-aspect aspect set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
-bits_per_raw_sample number set the number of bits per raw sample
-vn disable video
-vcodec codec force video codec ('copy' to copy stream)
-timecode hh:mm:ss[:;.]ff set initial TimeCode value.
-pass n select the pass number (1 to 3)
-vf filter_graph set video filters
-ab bitrate audio bitrate (please use -b:a)
-b bitrate video bitrate (please use -b:v)
-dn disable data
Audio options:
-aframes number set the number of audio frames to output
-aq quality set audio quality (codec-specific)
-ar rate set audio sampling rate (in Hz)
-ac channels set number of audio channels
-an disable audio
-acodec codec force audio codec ('copy' to copy stream)
-vol volume change audio volume (256=normal)
-af filter_graph set audio filters
Subtitle options:
-s size set frame size (WxH or abbreviation)
-sn disable subtitle
-scodec codec force subtitle codec ('copy' to copy stream)
-stag fourcc/tag force subtitle tag/fourcc
-fix_sub_duration fix subtitles duration
-canvas_size size set canvas size (WxH or abbreviation)
-spre preset set the subtitle options to the indicated preset
2、FFmpeg 命令帮助高级信息
将 FFmpeg 高级帮助信息导出到 ffmpeg_h_long.txt 文件中 ;
ffmpeg -h long > ffmpeg_h_long.txt
输出内容展示 :
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Getting help:
-h -- print basic options
-h long -- print more options
-h full -- print all options (including all format and codec specific options, very long)
-h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol
See man ffmpeg for detailed description of the options.
Print help / information / capabilities:
-L show license
-h topic show help
-? topic show help
-help topic show help
--help topic show help
-version show version
-buildconf show build configuration
-formats show available formats
-muxers show available muxers
-demuxers show available demuxers
-devices show available devices
-codecs show available codecs
-decoders show available decoders
-encoders show available encoders
-bsfs show available bit stream filters
-protocols show available protocols
-filters show available filters
-pix_fmts show available pixel formats
-layouts show standard channel layouts
-sample_fmts show available audio sample formats
-colors show available color names
-sources device list sources of the input device
-sinks device list sinks of the output device
-hwaccels show available HW acceleration methods
Global options (affect whole program instead of just one file):
-loglevel loglevel set logging level
-v loglevel set logging level
-report generate a report
-max_alloc bytes set maximum size of a single allocated block
-y overwrite output files
-n never overwrite output files
-ignore_unknown Ignore unknown stream types
-filter_threads number of non-complex filter threads
-filter_complex_threads number of threads for -filter_complex
-stats print progress report during encoding
-max_error_rate maximum error rate ratio of decoding errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.
-bits_per_raw_sample number set the number of bits per raw sample
-vol volume change audio volume (256=normal)
Advanced global options:
-cpuflags flags force specific cpu flags
-hide_banner hide_banner do not show program banner
-copy_unknown Copy unknown stream types
-benchmark add timings for benchmarking
-benchmark_all add timings for each task
-progress url write program-readable progress information
-stdin enable or disable interaction on standard input
-timelimit limit set max runtime in seconds in CPU user time
-dump dump each input packet
-hex when dumping packets, also dump the payload
-vsync video sync method
-frame_drop_threshold frame drop threshold
-async audio sync method
-adrift_threshold threshold audio drift threshold
-copyts copy timestamps
-start_at_zero shift input timestamps to start at 0 when using copyts
-copytb mode copy input stream time base when stream copying
-dts_delta_threshold threshold timestamp discontinuity delta threshold
-dts_error_threshold threshold timestamp error delta threshold
-xerror error exit on error
-abort_on flags abort on the specified condition flags
-filter_complex graph_description create a complex filtergraph
-lavfi graph_description create a complex filtergraph
-filter_complex_script filename read complex filtergraph description from a file
-auto_conversion_filters enable automatic conversion filters globally
-stats_period time set the period at which ffmpeg updates stats and -progress output
-debug_ts print timestamp debugging info
-intra deprecated use -g 1
-sameq Removed
-same_quant Removed
-deinterlace this option is deprecated, use the yadif filter instead
-psnr calculate PSNR of compressed frames
-vstats dump video coding statistics to file
-vstats_file file dump video coding statistics to file
-vstats_version Version of the vstats format to use.
-qphist show QP histogram
-vc channel deprecated, use -channel
-tvstd standard deprecated, use -standard
-isync this option is deprecated and does nothing
-sdp_file file specify a file in which to print sdp information
-qsv_device device set QSV hardware device (DirectX adapter index, DRM path or X11 display name)
-init_hw_device args initialise hardware device
-filter_hw_device device set hardware device used when filtering
Per-file main options:
-f fmt force format
-c codec codec name
-codec codec codec name
-pre preset preset name
-map_metadata outfile[,metadata]:infile[,metadata] set metadata information of outfile from infile
-t duration record or transcode "duration" seconds of audio/video
-to time_stop record or transcode stop time
-fs limit_size set the limit file size in bytes
-ss time_off set the start time offset
-sseof time_off set the start time offset relative to EOF
-seek_timestamp enable/disable seeking by timestamp with -ss
-timestamp time set the recording timestamp ('now' to set the current time)
-metadata string=string add metadata
-program title=string:st=number... add program with specified streams
-target type specify target file type ("vcd", "svcd", "dvd", "dv" or "dv50" with optional prefixes "pal-", "ntsc-" or "film-")
-apad audio pad
-frames number set the number of frames to output
-filter filter_graph set stream filtergraph
-filter_script filename read stream filtergraph description from a file
-reinit_filter reinit filtergraph on input parameter changes
-discard discard
-disposition disposition
Advanced per-file options:
-map [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]] set input stream mapping
-map_channel file.stream.channel[:syncfile.syncstream] map an audio channel from one stream to another
-map_chapters input_file_index set chapters mapping
-accurate_seek enable/disable accurate seeking with -ss
-itsoffset time_off set the input ts offset
-itsscale scale set the input ts scale
-dframes number set the number of data frames to output
-re read input at native frame rate
-shortest finish encoding within shortest input
-bitexact bitexact mode
-copyinkf copy initial non-keyframes
-copypriorss copy or discard frames before start time
-tag fourcc/tag force codec tag/fourcc
-q q use fixed quality scale (VBR)
-qscale q use fixed quality scale (VBR)
-profile profile set profile
-attach filename add an attachment to the output file
-dump_attachment filename extract an attachment into a file
-stream_loop loop count set number of times input stream shall be looped
-thread_queue_size set the maximum number of queued packets from the demuxer
-find_stream_info read and decode the streams to fill missing information with heuristics
-autorotate automatically insert correct rotate filters
-autoscale automatically insert a scale filter at the end of the filter graph
-muxdelay seconds set the maximum demux-decode delay
-muxpreload seconds set the initial demux-decode delay
-time_base ratio set the desired time base hint for output stream (1:24, 1:48000 or 0.04166, 2.0833e-5)
-enc_time_base ratio set the desired time base for the encoder (1:24, 1:48000 or 0.04166, 2.0833e-5). two special values are defined - 0 = use frame rate (video) or sample rate (audio),-1 = match source time base
-bsf bitstream_filters A comma-separated list of bitstream filters
-fpre filename set options from indicated preset file
-max_muxing_queue_size packets maximum number of packets that can be buffered while waiting for all streams to initialize
-muxing_queue_data_threshold bytes set the threshold after which max_muxing_queue_size is taken into account
-dcodec codec force data codec ('copy' to copy stream)
Video options:
-vframes number set the number of video frames to output
-r rate set frame rate (Hz value, fraction or abbreviation)
-fpsmax rate set max frame rate (Hz value, fraction or abbreviation)
-s size set frame size (WxH or abbreviation)
-aspect aspect set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
-bits_per_raw_sample number set the number of bits per raw sample
-vn disable video
-vcodec codec force video codec ('copy' to copy stream)
-timecode hh:mm:ss[:;.]ff set initial TimeCode value.
-pass n select the pass number (1 to 3)
-vf filter_graph set video filters
-ab bitrate audio bitrate (please use -b:a)
-b bitrate video bitrate (please use -b:v)
-dn disable data
Advanced Video options:
-pix_fmt format set pixel format
-intra deprecated use -g 1
-rc_override override rate control override for specific intervals
-sameq Removed
-same_quant Removed
-passlogfile prefix select two pass log file name prefix
-deinterlace this option is deprecated, use the yadif filter instead
-psnr calculate PSNR of compressed frames
-vstats dump video coding statistics to file
-vstats_file file dump video coding statistics to file
-vstats_version Version of the vstats format to use.
-intra_matrix matrix specify intra matrix coeffs
-inter_matrix matrix specify inter matrix coeffs
-chroma_intra_matrix matrix specify intra matrix coeffs
-top top=1/bottom=0/auto=-1 field first
-vtag fourcc/tag force video tag/fourcc
-qphist show QP histogram
-force_fps force the selected framerate, disable the best supported framerate selection
-streamid streamIndex:value set the value of an outfile streamid
-force_key_frames timestamps force key frames at specified timestamps
-hwaccel hwaccel name use HW accelerated decoding
-hwaccel_device devicename select a device for HW acceleration
-hwaccel_output_format format select output format used with HW accelerated decoding
-vc channel deprecated, use -channel
-tvstd standard deprecated, use -standard
-vbsf video bitstream_filters deprecated
-vpre preset set the video options to the indicated preset
Audio options:
-aframes number set the number of audio frames to output
-aq quality set audio quality (codec-specific)
-ar rate set audio sampling rate (in Hz)
-ac channels set number of audio channels
-an disable audio
-acodec codec force audio codec ('copy' to copy stream)
-vol volume change audio volume (256=normal)
-af filter_graph set audio filters
Advanced Audio options:
-atag fourcc/tag force audio tag/fourcc
-sample_fmt format set sample format
-channel_layout layout set channel layout
-guess_layout_max set the maximum number of channels to try to guess the channel layout
-absf audio bitstream_filters deprecated
-apre preset set the audio options to the indicated preset
Subtitle options:
-s size set frame size (WxH or abbreviation)
-sn disable subtitle
-scodec codec force subtitle codec ('copy' to copy stream)
-stag fourcc/tag force subtitle tag/fourcc
-fix_sub_duration fix subtitles duration
-canvas_size size set canvas size (WxH or abbreviation)
-spre preset set the subtitle options to the indicated preset
3、FFmpeg 命令帮助完整信息
执行如下命令 , 将完整帮助信息导出到 ffmpeg_h_full.txt 文件中 , 这个帮助文档有 1001 1001 1001 KB , 放到博客资源中了 ;
ffmpeg -h full > ffmpeg_h_full.txt
二、ffplay 命令帮助文档
使用如下命令 , 查看 ffplay 命令的帮助文档 ;
ffplay -h
将帮助文档输出到文件中 :
ffplay -h > ffplay_h.txt
三、ffprobe 命令帮助文档
使用如下命令 , 查看 ffprobe 命令的帮助文档 ;
ffprobe -h
将帮助文档输出到文件中 :
ffprobe -h > ffprobe_h.txt
四、帮助命令查找技巧
ffmpeg , ffplay , ffprobe 命令部分参数是通用的 , 但是有些不通用 ;
命令搜索技巧 : 查找 " 264 " 字符串相关的命令 ;
ffmpeg -h full | findstr 264
博客资源
以上是关于FFmpegffmpeg使用drawtext过滤器在视频上叠加文字的主要内容,如果未能解决你的问题,请参考以下文章
使用 ffmpeg drawtext 突出显示文本中的一些单词
FFmpegffmpeg 命令查询三 ( 查询 ffmpeg 命令分类支持的参数 )
FFmpegffmpeg 命令查询三 ( 查询 ffmpeg 命令分类支持的参数 )