@ -1836,111 +1836,194 @@ void show_usage(void)
const OptionDef options [ ] = {
/* main options */
# include "cmdutils_common_opts.h"
{ " f " , HAS_ARG | OPT_STRING | OPT_OFFSET , { . off = OFFSET ( format ) } , " force format " , " fmt " } ,
{ " i " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_input_file } , " input file name " , " filename " } ,
{ " y " , OPT_BOOL , { & file_overwrite } , " overwrite output files " } ,
{ " c " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( codec_names ) } , " codec name " , " codec " } ,
{ " codec " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( codec_names ) } , " codec name " , " codec " } ,
{ " pre " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( presets ) } , " preset name " , " preset " } ,
{ " map " , HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_map } , " set input stream mapping " , " [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]] " } ,
{ " map_metadata " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( metadata_map ) } , " set metadata information of outfile from infile " ,
{ " f " , HAS_ARG | OPT_STRING | OPT_OFFSET , { . off = OFFSET ( format ) } ,
" force format " , " fmt " } ,
{ " i " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_input_file } ,
" input file name " , " filename " } ,
{ " y " , OPT_BOOL , { & file_overwrite } ,
" overwrite output files " } ,
{ " c " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( codec_names ) } ,
" codec name " , " codec " } ,
{ " codec " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( codec_names ) } ,
" codec name " , " codec " } ,
{ " pre " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( presets ) } ,
" preset name " , " preset " } ,
{ " map " , HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_map } ,
" set input stream mapping " ,
" [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]] " } ,
{ " map_metadata " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( metadata_map ) } ,
" set metadata information of outfile from infile " ,
" outfile[,metadata]:infile[,metadata] " } ,
{ " map_chapters " , OPT_INT | HAS_ARG | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( chapters_input_file ) } , " set chapters mapping " , " input_file_index " } ,
{ " t " , HAS_ARG | OPT_TIME | OPT_OFFSET , { . off = OFFSET ( recording_time ) } , " record or transcode \" duration \" seconds of audio/video " , " duration " } ,
{ " fs " , HAS_ARG | OPT_INT64 | OPT_OFFSET , { . off = OFFSET ( limit_filesize ) } , " set the limit file size in bytes " , " limit_size " } , //
{ " ss " , HAS_ARG | OPT_TIME | OPT_OFFSET , { . off = OFFSET ( start_time ) } , " set the start time offset " , " time_off " } ,
{ " itsoffset " , HAS_ARG | OPT_TIME | OPT_OFFSET , { . off = OFFSET ( input_ts_offset ) } , " set the input ts offset " , " time_off " } ,
{ " itsscale " , HAS_ARG | OPT_DOUBLE | OPT_SPEC , { . off = OFFSET ( ts_scale ) } , " set the input ts scale " , " scale " } ,
{ " metadata " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( metadata ) } , " add metadata " , " string=string " } ,
{ " dframes " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_data_frames } , " set the number of data frames to record " , " number " } ,
{ " benchmark " , OPT_BOOL | OPT_EXPERT , { & do_benchmark } ,
{ " map_chapters " , HAS_ARG | OPT_INT | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( chapters_input_file ) } ,
" set chapters mapping " , " input_file_index " } ,
{ " t " , HAS_ARG | OPT_TIME | OPT_OFFSET , { . off = OFFSET ( recording_time ) } ,
" record or transcode \" duration \" seconds of audio/video " ,
" duration " } ,
{ " fs " , HAS_ARG | OPT_INT64 | OPT_OFFSET , { . off = OFFSET ( limit_filesize ) } ,
" set the limit file size in bytes " , " limit_size " } ,
{ " ss " , HAS_ARG | OPT_TIME | OPT_OFFSET , { . off = OFFSET ( start_time ) } ,
" set the start time offset " , " time_off " } ,
{ " itsoffset " , HAS_ARG | OPT_TIME | OPT_OFFSET , { . off = OFFSET ( input_ts_offset ) } ,
" set the input ts offset " , " time_off " } ,
{ " itsscale " , HAS_ARG | OPT_DOUBLE | OPT_SPEC , { . off = OFFSET ( ts_scale ) } ,
" set the input ts scale " , " scale " } ,
{ " metadata " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( metadata ) } ,
" add metadata " , " string=string " } ,
{ " dframes " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_data_frames } ,
" set the number of data frames to record " , " number " } ,
{ " benchmark " , OPT_BOOL | OPT_EXPERT , { & do_benchmark } ,
" add timings for benchmarking " } ,
{ " timelimit " , HAS_ARG , { . func_arg = opt_timelimit } , " set max runtime in seconds " , " limit " } ,
{ " dump " , OPT_BOOL | OPT_EXPERT , { & do_pkt_dump } ,
{ " timelimit " , HAS_ARG , { . func_arg = opt_timelimit } ,
" set max runtime in seconds " , " limit " } ,
{ " dump " , OPT_BOOL | OPT_EXPERT , { & do_pkt_dump } ,
" dump each input packet " } ,
{ " hex " , OPT_BOOL | OPT_EXPERT , { & do_hex_dump } ,
{ " hex " , OPT_BOOL | OPT_EXPERT , { & do_hex_dump } ,
" when dumping packets, also dump the payload " } ,
{ " re " , OPT_BOOL | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( rate_emu ) } , " read input at native frame rate " , " " } ,
{ " target " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_target } , " specify target file type ( \" vcd \" , \" svcd \" , \" dvd \" , \" dv \" , \" dv50 \" , \" pal-vcd \" , \" ntsc-svcd \" , ...) " , " type " } ,
{ " vsync " , HAS_ARG | OPT_EXPERT , { opt_vsync } , " video sync method " , " " } ,
{ " async " , HAS_ARG | OPT_INT | OPT_EXPERT , { & audio_sync_method } , " audio sync method " , " " } ,
{ " adrift_threshold " , HAS_ARG | OPT_FLOAT | OPT_EXPERT , { & audio_drift_threshold } , " audio drift threshold " , " threshold " } ,
{ " copyts " , OPT_BOOL | OPT_EXPERT , { & copy_ts } , " copy timestamps " } ,
{ " copytb " , OPT_BOOL | OPT_EXPERT , { & copy_tb } , " copy input stream time base when stream copying " } ,
{ " shortest " , OPT_BOOL | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( shortest ) } , " finish encoding within shortest input " } ,
{ " dts_delta_threshold " , HAS_ARG | OPT_FLOAT | OPT_EXPERT , { & dts_delta_threshold } , " timestamp discontinuity delta threshold " , " threshold " } ,
{ " xerror " , OPT_BOOL , { & exit_on_error } , " exit on error " , " error " } ,
{ " copyinkf " , OPT_BOOL | OPT_EXPERT | OPT_SPEC , { . off = OFFSET ( copy_initial_nonkeyframes ) } , " copy initial non-keyframes " } ,
{ " frames " , OPT_INT64 | HAS_ARG | OPT_SPEC , { . off = OFFSET ( max_frames ) } , " set the number of frames to record " , " number " } ,
{ " tag " , OPT_STRING | HAS_ARG | OPT_SPEC , { . off = OFFSET ( codec_tags ) } , " force codec tag/fourcc " , " fourcc/tag " } ,
{ " q " , HAS_ARG | OPT_EXPERT | OPT_DOUBLE | OPT_SPEC , { . off = OFFSET ( qscale ) } , " use fixed quality scale (VBR) " , " q " } ,
{ " qscale " , HAS_ARG | OPT_EXPERT | OPT_DOUBLE | OPT_SPEC , { . off = OFFSET ( qscale ) } , " use fixed quality scale (VBR) " , " q " } ,
{ " filter " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( filters ) } , " set stream filterchain " , " filter_list " } ,
{ " filter_complex " , HAS_ARG | OPT_EXPERT , { . func_arg = opt_filter_complex } , " create a complex filtergraph " , " graph_description " } ,
{ " stats " , OPT_BOOL , { & print_stats } , " print progress report during encoding " , } ,
{ " attach " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_attach } , " add an attachment to the output file " , " filename " } ,
{ " dump_attachment " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( dump_attachment ) } , " extract an attachment into a file " , " filename " } ,
{ " cpuflags " , HAS_ARG | OPT_EXPERT , { . func_arg = opt_cpuflags } , " set CPU flags mask " , " mask " } ,
{ " re " , OPT_BOOL | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( rate_emu ) } ,
" read input at native frame rate " , " " } ,
{ " target " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_target } ,
" specify target file type ( \" vcd \" , \" svcd \" , \" dvd \" , "
" \" dv \" , \" dv50 \" , \" pal-vcd \" , \" ntsc-svcd \" , ...) " , " type " } ,
{ " vsync " , HAS_ARG | OPT_EXPERT , { opt_vsync } ,
" video sync method " , " " } ,
{ " async " , HAS_ARG | OPT_INT | OPT_EXPERT , { & audio_sync_method } ,
" audio sync method " , " " } ,
{ " adrift_threshold " , HAS_ARG | OPT_FLOAT | OPT_EXPERT , { & audio_drift_threshold } ,
" audio drift threshold " , " threshold " } ,
{ " copyts " , OPT_BOOL | OPT_EXPERT , { & copy_ts } ,
" copy timestamps " } ,
{ " copytb " , OPT_BOOL | OPT_EXPERT , { & copy_tb } ,
" copy input stream time base when stream copying " } ,
{ " shortest " , OPT_BOOL | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( shortest ) } ,
" finish encoding within shortest input " } ,
{ " dts_delta_threshold " , HAS_ARG | OPT_FLOAT | OPT_EXPERT , { & dts_delta_threshold } ,
" timestamp discontinuity delta threshold " , " threshold " } ,
{ " xerror " , OPT_BOOL , { & exit_on_error } ,
" exit on error " , " error " } ,
{ " copyinkf " , OPT_BOOL | OPT_EXPERT | OPT_SPEC , { . off = OFFSET ( copy_initial_nonkeyframes ) } ,
" copy initial non-keyframes " } ,
{ " frames " , OPT_INT64 | HAS_ARG | OPT_SPEC , { . off = OFFSET ( max_frames ) } ,
" set the number of frames to record " , " number " } ,
{ " tag " , OPT_STRING | HAS_ARG | OPT_SPEC , { . off = OFFSET ( codec_tags ) } ,
" force codec tag/fourcc " , " fourcc/tag " } ,
{ " q " , HAS_ARG | OPT_EXPERT | OPT_DOUBLE | OPT_SPEC , { . off = OFFSET ( qscale ) } ,
" use fixed quality scale (VBR) " , " q " } ,
{ " qscale " , HAS_ARG | OPT_EXPERT | OPT_DOUBLE | OPT_SPEC , { . off = OFFSET ( qscale ) } ,
" use fixed quality scale (VBR) " , " q " } ,
{ " filter " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( filters ) } ,
" set stream filterchain " , " filter_list " } ,
{ " filter_complex " , HAS_ARG | OPT_EXPERT , { . func_arg = opt_filter_complex } ,
" create a complex filtergraph " , " graph_description " } ,
{ " stats " , OPT_BOOL , { & print_stats } ,
" print progress report during encoding " , } ,
{ " attach " , HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_attach } ,
" add an attachment to the output file " , " filename " } ,
{ " dump_attachment " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( dump_attachment ) } ,
" extract an attachment into a file " , " filename " } ,
{ " cpuflags " , HAS_ARG | OPT_EXPERT , { . func_arg = opt_cpuflags } ,
" set CPU flags mask " , " mask " } ,
/* video options */
{ " vframes " , HAS_ARG | OPT_VIDEO | OPT_FUNC2 , { . func2_arg = opt_video_frames } , " set the number of video frames to record " , " number " } ,
{ " r " , HAS_ARG | OPT_VIDEO | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_rates ) } , " set frame rate (Hz value, fraction or abbreviation) " , " rate " } ,
{ " s " , HAS_ARG | OPT_VIDEO | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_sizes ) } , " set frame size (WxH or abbreviation) " , " size " } ,
{ " aspect " , HAS_ARG | OPT_VIDEO | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_aspect_ratios ) } , " set aspect ratio (4:3, 16:9 or 1.3333, 1.7777) " , " aspect " } ,
{ " pix_fmt " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_pix_fmts ) } , " set pixel format " , " format " } ,
{ " vn " , OPT_BOOL | OPT_VIDEO | OPT_OFFSET , { . off = OFFSET ( video_disable ) } , " disable video " } ,
{ " vdt " , OPT_INT | HAS_ARG | OPT_EXPERT | OPT_VIDEO , { & video_discard } , " discard threshold " , " n " } ,
{ " rc_override " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_STRING | OPT_SPEC , { . off = OFFSET ( rc_overrides ) } , " rate control override for specific intervals " , " override " } ,
{ " vcodec " , HAS_ARG | OPT_VIDEO | OPT_FUNC2 , { . func2_arg = opt_video_codec } , " force video codec ('copy' to copy stream) " , " codec " } ,
{ " same_quant " , OPT_BOOL | OPT_VIDEO , { & same_quant } ,
{ " vframes " , OPT_VIDEO | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_video_frames } ,
" set the number of video frames to record " , " number " } ,
{ " r " , OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_rates ) } ,
" set frame rate (Hz value, fraction or abbreviation) " , " rate " } ,
{ " s " , OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_sizes ) } ,
" set frame size (WxH or abbreviation) " , " size " } ,
{ " aspect " , OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_aspect_ratios ) } ,
" set aspect ratio (4:3, 16:9 or 1.3333, 1.7777) " , " aspect " } ,
{ " pix_fmt " , OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC , { . off = OFFSET ( frame_pix_fmts ) } ,
" set pixel format " , " format " } ,
{ " vn " , OPT_VIDEO | OPT_BOOL | OPT_OFFSET , { . off = OFFSET ( video_disable ) } ,
" disable video " } ,
{ " vdt " , OPT_VIDEO | OPT_INT | HAS_ARG | OPT_EXPERT , { & video_discard } ,
" discard threshold " , " n " } ,
{ " rc_override " , OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC , { . off = OFFSET ( rc_overrides ) } ,
" rate control override for specific intervals " , " override " } ,
{ " vcodec " , OPT_VIDEO | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_video_codec } ,
" force video codec ('copy' to copy stream) " , " codec " } ,
{ " same_quant " , OPT_VIDEO | OPT_BOOL , { & same_quant } ,
" use same quantizer as source (implies VBR) " } ,
{ " pass " , HAS_ARG | OPT_VIDEO , { opt_pass } , " select the pass number (1 or 2) " , " n " } ,
{ " passlogfile " , HAS_ARG | OPT_STRING | OPT_VIDEO , { & pass_logfilename_prefix } , " select two pass log file name prefix " , " prefix " } ,
{ " deinterlace " , OPT_EXPERT | OPT_VIDEO , { opt_deinterlace } ,
{ " pass " , OPT_VIDEO | HAS_ARG , { opt_pass } ,
" select the pass number (1 or 2) " , " n " } ,
{ " passlogfile " , OPT_VIDEO | HAS_ARG | OPT_STRING , { & pass_logfilename_prefix } ,
" select two pass log file name prefix " , " prefix " } ,
{ " deinterlace " , OPT_VIDEO | OPT_EXPERT , { . func_arg = opt_deinterlace } ,
" this option is deprecated, use the yadif filter instead " } ,
{ " vstats " , OPT_EXPERT | OPT_VIDEO , { & opt_vstats } , " dump video coding statistics to file " } ,
{ " vstats_file " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { opt_vstats_file } , " dump video coding statistics to file " , " file " } ,
{ " vf " , HAS_ARG | OPT_VIDEO | OPT_FUNC2 , { . func2_arg = opt_video_filters } , " video filters " , " filter list " } ,
{ " intra_matrix " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_STRING | OPT_SPEC , { . off = OFFSET ( intra_matrices ) } , " specify intra matrix coeffs " , " matrix " } ,
{ " inter_matrix " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_STRING | OPT_SPEC , { . off = OFFSET ( inter_matrices ) } , " specify inter matrix coeffs " , " matrix " } ,
{ " top " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_INT | OPT_SPEC , { . off = OFFSET ( top_field_first ) } , " top=1/bottom=0/auto=-1 field first " , " " } ,
{ " dc " , OPT_INT | HAS_ARG | OPT_EXPERT | OPT_VIDEO , { & intra_dc_precision } , " intra_dc_precision " , " precision " } ,
{ " vtag " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_FUNC2 , { . func2_arg = opt_video_tag } , " force video tag/fourcc " , " fourcc/tag " } ,
{ " qphist " , OPT_BOOL | OPT_EXPERT | OPT_VIDEO , { & qp_hist } , " show QP histogram " } ,
{ " force_fps " , OPT_BOOL | OPT_EXPERT | OPT_VIDEO | OPT_SPEC , { . off = OFFSET ( force_fps ) } , " force the selected framerate, disable the best supported framerate selection " } ,
{ " streamid " , HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_streamid } , " set the value of an outfile streamid " , " streamIndex:value " } ,
{ " force_key_frames " , OPT_STRING | HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_SPEC , { . off = OFFSET ( forced_key_frames ) } , " force key frames at specified timestamps " , " timestamps " } ,
{ " vstats " , OPT_VIDEO | OPT_EXPERT , { & opt_vstats } ,
" dump video coding statistics to file " } ,
{ " vstats_file " , OPT_VIDEO | HAS_ARG | OPT_EXPERT , { opt_vstats_file } ,
" dump video coding statistics to file " , " file " } ,
{ " vf " , OPT_VIDEO | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_video_filters } ,
" video filters " , " filter list " } ,
{ " intra_matrix " , OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC , { . off = OFFSET ( intra_matrices ) } ,
" specify intra matrix coeffs " , " matrix " } ,
{ " inter_matrix " , OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC , { . off = OFFSET ( inter_matrices ) } ,
" specify inter matrix coeffs " , " matrix " } ,
{ " top " , OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_INT | OPT_SPEC , { . off = OFFSET ( top_field_first ) } ,
" top=1/bottom=0/auto=-1 field first " , " " } ,
{ " dc " , OPT_VIDEO | OPT_INT | HAS_ARG | OPT_EXPERT , { & intra_dc_precision } ,
" intra_dc_precision " , " precision " } ,
{ " vtag " , OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_video_tag } ,
" force video tag/fourcc " , " fourcc/tag " } ,
{ " qphist " , OPT_VIDEO | OPT_BOOL | OPT_EXPERT , { & qp_hist } ,
" show QP histogram " } ,
{ " force_fps " , OPT_VIDEO | OPT_BOOL | OPT_EXPERT | OPT_SPEC , { . off = OFFSET ( force_fps ) } ,
" force the selected framerate, disable the best supported framerate selection " } ,
{ " streamid " , OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_streamid } ,
" set the value of an outfile streamid " , " streamIndex:value " } ,
{ " force_key_frames " , OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT | OPT_SPEC ,
{ . off = OFFSET ( forced_key_frames ) } , " force key frames at specified timestamps " , " timestamps " } ,
/* audio options */
{ " aframes " , HAS_ARG | OPT_AUDIO | OPT_FUNC2 , { . func2_arg = opt_audio_frames } , " set the number of audio frames to record " , " number " } ,
{ " aq " , HAS_ARG | OPT_AUDIO | OPT_FUNC2 , { . func2_arg = opt_audio_qscale } , " set audio quality (codec-specific) " , " quality " , } ,
{ " ar " , HAS_ARG | OPT_AUDIO | OPT_INT | OPT_SPEC , { . off = OFFSET ( audio_sample_rate ) } , " set audio sampling rate (in Hz) " , " rate " } ,
{ " ac " , HAS_ARG | OPT_AUDIO | OPT_INT | OPT_SPEC , { . off = OFFSET ( audio_channels ) } , " set number of audio channels " , " channels " } ,
{ " an " , OPT_BOOL | OPT_AUDIO | OPT_OFFSET , { . off = OFFSET ( audio_disable ) } , " disable audio " } ,
{ " acodec " , HAS_ARG | OPT_AUDIO | OPT_FUNC2 , { . func2_arg = opt_audio_codec } , " force audio codec ('copy' to copy stream) " , " codec " } ,
{ " atag " , HAS_ARG | OPT_EXPERT | OPT_AUDIO | OPT_FUNC2 , { . func2_arg = opt_audio_tag } , " force audio tag/fourcc " , " fourcc/tag " } ,
{ " vol " , OPT_INT | HAS_ARG | OPT_AUDIO , { & audio_volume } , " change audio volume (256=normal) " , " volume " } , //
{ " sample_fmt " , HAS_ARG | OPT_EXPERT | OPT_AUDIO | OPT_SPEC | OPT_STRING , { . off = OFFSET ( sample_fmts ) } , " set sample format " , " format " } ,
{ " channel_layout " , HAS_ARG | OPT_EXPERT | OPT_AUDIO | OPT_FUNC2 , { . func2_arg = opt_channel_layout } , " set channel layout " , " layout " } ,
{ " af " , HAS_ARG | OPT_AUDIO | OPT_FUNC2 , { . func2_arg = opt_audio_filters } , " audio filters " , " filter list " } ,
{ " aframes " , OPT_AUDIO | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_audio_frames } ,
" set the number of audio frames to record " , " number " } ,
{ " aq " , OPT_AUDIO | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_audio_qscale } ,
" set audio quality (codec-specific) " , " quality " , } ,
{ " ar " , OPT_AUDIO | HAS_ARG | OPT_INT | OPT_SPEC , { . off = OFFSET ( audio_sample_rate ) } ,
" set audio sampling rate (in Hz) " , " rate " } ,
{ " ac " , OPT_AUDIO | HAS_ARG | OPT_INT | OPT_SPEC , { . off = OFFSET ( audio_channels ) } ,
" set number of audio channels " , " channels " } ,
{ " an " , OPT_AUDIO | OPT_BOOL | OPT_OFFSET , { . off = OFFSET ( audio_disable ) } ,
" disable audio " } ,
{ " acodec " , OPT_AUDIO | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_audio_codec } ,
" force audio codec ('copy' to copy stream) " , " codec " } ,
{ " atag " , OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_audio_tag } ,
" force audio tag/fourcc " , " fourcc/tag " } ,
{ " vol " , OPT_AUDIO | HAS_ARG | OPT_INT , { & audio_volume } ,
" change audio volume (256=normal) " , " volume " } ,
{ " sample_fmt " , OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_SPEC | OPT_STRING , { . off = OFFSET ( sample_fmts ) } ,
" set sample format " , " format " } ,
{ " channel_layout " , OPT_AUDIO | HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_channel_layout } ,
" set channel layout " , " layout " } ,
{ " af " , OPT_AUDIO | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_audio_filters } ,
" audio filters " , " filter list " } ,
/* subtitle options */
{ " sn " , OPT_BOOL | OPT_SUBTITLE | OPT_OFFSET , { . off = OFFSET ( subtitle_disable ) } , " disable subtitle " } ,
{ " scodec " , HAS_ARG | OPT_SUBTITLE | OPT_FUNC2 , { . func2_arg = opt_subtitle_codec } , " force subtitle codec ('copy' to copy stream) " , " codec " } ,
{ " stag " , HAS_ARG | OPT_EXPERT | OPT_SUBTITLE | OPT_FUNC2 , { . func2_arg = opt_subtitle_tag } , " force subtitle tag/fourcc " , " fourcc/tag " } ,
{ " sn " , OPT_SUBTITLE | OPT_BOOL | OPT_OFFSET , { . off = OFFSET ( subtitle_disable ) } ,
" disable subtitle " } ,
{ " scodec " , OPT_SUBTITLE | HAS_ARG | OPT_FUNC2 , { . func2_arg = opt_subtitle_codec } ,
" force subtitle codec ('copy' to copy stream) " , " codec " } ,
{ " stag " , OPT_SUBTITLE | HAS_ARG | OPT_EXPERT | OPT_FUNC2 , { . func2_arg = opt_subtitle_tag }
, " force subtitle tag/fourcc " , " fourcc/tag " } ,
/* grab options */
{ " isync " , OPT_BOOL | OPT_EXPERT | OPT_GRAB , { & input_sync } , " sync read on input " , " " } ,
{ " isync " , OPT_BOOL | OPT_EXPERT | OPT_GRAB , { & input_sync } , " sync read on input " , " " } ,
/* muxer options */
{ " muxdelay " , OPT_FLOAT | HAS_ARG | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( mux_max_delay ) } , " set the maximum demux-decode delay " , " seconds " } ,
{ " muxpreload " , OPT_FLOAT | HAS_ARG | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( mux_preload ) } , " set the initial demux-decode delay " , " seconds " } ,
{ " muxdelay " , OPT_FLOAT | HAS_ARG | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( mux_max_delay ) } ,
" set the maximum demux-decode delay " , " seconds " } ,
{ " muxpreload " , OPT_FLOAT | HAS_ARG | OPT_EXPERT | OPT_OFFSET , { . off = OFFSET ( mux_preload ) } ,
" set the initial demux-decode delay " , " seconds " } ,
{ " bsf " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( bitstream_filters ) } , " A comma-separated list of bitstream filters " , " bitstream_filters " } ,
{ " bsf " , HAS_ARG | OPT_STRING | OPT_SPEC , { . off = OFFSET ( bitstream_filters ) } ,
" A comma-separated list of bitstream filters " , " bitstream_filters " } ,
/* data codec support */
{ " dcodec " , HAS_ARG | OPT_DATA | OPT_FUNC2 , { . func2_arg = opt_data_codec } , " force data codec ('copy' to copy stream) " , " codec " } ,
{ " dcodec " , HAS_ARG | OPT_DATA | OPT_FUNC2 , { . func2_arg = opt_data_codec } ,
" force data codec ('copy' to copy stream) " , " codec " } ,
{ " default " , HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT , { . func_arg = opt_default } , " generic catch all option " , " " } ,
{ " default " , HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT , { . func_arg = opt_default } ,
" generic catch all option " , " " } ,
{ NULL , } ,
} ;