@ -2810,14 +2810,16 @@ static int transcode(AVFormatContext **output_files,
return ret ;
}
static void opt_format ( const char * arg )
static int opt_format ( const char * opt , const char * arg )
{
last_asked_format = arg ;
return 0 ;
}
static void opt_video_rc_override_string ( const char * arg )
static int opt_video_rc_override_string ( const char * opt , const char * arg )
{
video_rc_override_string = arg ;
return 0 ;
}
static int opt_me_threshold ( const char * opt , const char * arg )
@ -2859,12 +2861,13 @@ static int opt_frame_crop(const char *opt, const char *arg)
return AVERROR ( EINVAL ) ;
}
static void opt_frame_size ( const char * arg )
static int opt_frame_size ( const char * opt , const char * arg )
{
if ( av_parse_video_size ( & frame_width , & frame_height , arg ) < 0 ) {
fprintf ( stderr , " Incorrect frame size \n " ) ;
ffmpeg_exit ( 1 ) ;
return AVERROR ( EINVAL ) ;
}
return 0 ;
}
static int opt_pad ( const char * opt , const char * arg ) {
@ -2872,21 +2875,22 @@ static int opt_pad(const char *opt, const char *arg) {
return - 1 ;
}
static void opt_frame_pix_fmt ( const char * arg )
static int opt_frame_pix_fmt ( const char * opt , const char * arg )
{
if ( strcmp ( arg , " list " ) ) {
frame_pix_fmt = av_get_pix_fmt ( arg ) ;
if ( frame_pix_fmt = = PIX_FMT_NONE ) {
fprintf ( stderr , " Unknown pixel format requested: %s \n " , arg ) ;
ffmpeg_exit ( 1 ) ;
return AVERROR ( EINVAL ) ;
}
} else {
show_pix_fmts ( ) ;
ffmpeg_exit ( 0 ) ;
}
return 0 ;
}
static void opt_frame_aspect_ratio ( const char * arg )
static int opt_frame_aspect_ratio ( const char * opt , const char * arg )
{
int x = 0 , y = 0 ;
double ar = 0 ;
@ -2905,9 +2909,10 @@ static void opt_frame_aspect_ratio(const char *arg)
if ( ! ar ) {
fprintf ( stderr , " Incorrect aspect ratio specification. \n " ) ;
ffmpeg_exit ( 1 ) ;
return AVERROR ( EINVAL ) ;
}
frame_aspect_ratio = ar ;
return 0 ;
}
static int opt_metadata ( const char * opt , const char * arg )
@ -2952,13 +2957,13 @@ static int opt_thread_count(const char *opt, const char *arg)
return 0 ;
}
static void opt_audio_sample_fmt ( const char * arg )
static int opt_audio_sample_fmt ( const char * opt , const char * arg )
{
if ( strcmp ( arg , " list " ) ) {
audio_sample_fmt = av_get_sample_fmt ( arg ) ;
if ( audio_sample_fmt = = AV_SAMPLE_FMT_NONE ) {
av_log ( NULL , AV_LOG_ERROR , " Invalid sample format '%s' \n " , arg ) ;
ffmpeg_exit ( 1 ) ;
return AVERROR ( EINVAL ) ;
}
} else {
int i ;
@ -2967,6 +2972,7 @@ static void opt_audio_sample_fmt(const char *arg)
printf ( " %s \n " , av_get_sample_fmt_string ( fmt_str , sizeof ( fmt_str ) , i ) ) ;
ffmpeg_exit ( 0 ) ;
}
return 0 ;
}
static int opt_audio_rate ( const char * opt , const char * arg )
@ -2987,12 +2993,13 @@ static int opt_video_channel(const char *opt, const char *arg)
return 0 ;
}
static void opt_video_standard ( const char * arg )
static int opt_video_standard ( const char * opt , const char * arg )
{
video_standard = av_strdup ( arg ) ;
return 0 ;
}
static void opt_codec ( int * pstream_copy , char * * pcodec_name ,
static int opt_codec ( int * pstream_copy , char * * pcodec_name ,
int codec_type , const char * arg )
{
av_freep ( pcodec_name ) ;
@ -3001,26 +3008,27 @@ static void opt_codec(int *pstream_copy, char **pcodec_name,
} else {
* pcodec_name = av_strdup ( arg ) ;
}
return 0 ;
}
static void opt_audio_codec ( const char * arg )
static int opt_audio_codec ( const char * opt , const char * arg )
{
opt_codec ( & audio_stream_copy , & audio_codec_name , AVMEDIA_TYPE_AUDIO , arg ) ;
return opt_codec ( & audio_stream_copy , & audio_codec_name , AVMEDIA_TYPE_AUDIO , arg ) ;
}
static void opt_video_codec ( const char * arg )
static int opt_video_codec ( const char * opt , const char * arg )
{
opt_codec ( & video_stream_copy , & video_codec_name , AVMEDIA_TYPE_VIDEO , arg ) ;
return opt_codec ( & video_stream_copy , & video_codec_name , AVMEDIA_TYPE_VIDEO , arg ) ;
}
static void opt_subtitle_codec ( const char * arg )
static int opt_subtitle_codec ( const char * opt , const char * arg )
{
opt_codec ( & subtitle_stream_copy , & subtitle_codec_name , AVMEDIA_TYPE_SUBTITLE , arg ) ;
return opt_codec ( & subtitle_stream_copy , & subtitle_codec_name , AVMEDIA_TYPE_SUBTITLE , arg ) ;
}
static void opt_data_codec ( const char * arg )
static int opt_data_codec ( const char * opt , const char * arg )
{
opt_codec ( & data_stream_copy , & data_codec_name , AVMEDIA_TYPE_DATA , arg ) ;
return opt_codec ( & data_stream_copy , & data_codec_name , AVMEDIA_TYPE_DATA , arg ) ;
}
static int opt_codec_tag ( const char * opt , const char * arg )
@ -3041,7 +3049,7 @@ static int opt_codec_tag(const char *opt, const char *arg)
return 0 ;
}
static void opt_map ( const char * arg )
static int opt_map ( const char * opt , const char * arg )
{
AVStreamMap * m ;
char * p ;
@ -3064,6 +3072,7 @@ static void opt_map(const char *arg)
m - > sync_file_index = m - > file_index ;
m - > sync_stream_index = m - > stream_index ;
}
return 0 ;
}
static void parse_meta_type ( char * arg , char * type , int * index , char * * endptr )
@ -3087,7 +3096,7 @@ static void parse_meta_type(char *arg, char *type, int *index, char **endptr)
* type = ' g ' ;
}
static void opt_map_metadata ( const char * arg )
static int opt_map_metadata ( const char * opt , const char * arg )
{
AVMetaDataMap * m , * m1 ;
char * p ;
@ -3111,16 +3120,18 @@ static void opt_map_metadata(const char *arg)
metadata_streams_autocopy = 0 ;
if ( m - > type = = ' c ' | | m1 - > type = = ' c ' )
metadata_chapters_autocopy = 0 ;
return 0 ;
}
static void opt_map_meta_data ( const char * arg )
static int opt_map_meta_data ( const char * opt , const char * arg )
{
fprintf ( stderr , " -map_meta_data is deprecated and will be removed soon. "
" Use -map_metadata instead. \n " ) ;
opt_map_metadata ( arg ) ;
return opt_map_metadata ( opt , arg ) ;
}
static void opt_map_chapters ( const char * arg )
static int opt_map_chapters ( const char * opt , const char * arg )
{
AVChapterMap * c ;
char * p ;
@ -3133,9 +3144,10 @@ static void opt_map_chapters(const char *arg)
p + + ;
c - > in_file = strtol ( p , & p , 0 ) ;
return 0 ;
}
static void opt_input_ts_scale ( const char * arg )
static int opt_input_ts_scale ( const char * opt , const char * arg )
{
unsigned int stream ;
double scale ;
@ -3151,6 +3163,7 @@ static void opt_input_ts_scale(const char *arg)
input_files_ts_scale [ nb_input_files ] = grow_array ( input_files_ts_scale [ nb_input_files ] , sizeof ( * input_files_ts_scale [ nb_input_files ] ) , & nb_input_files_ts_scale [ nb_input_files ] , stream + 1 ) ;
input_files_ts_scale [ nb_input_files ] [ stream ] = scale ;
return 0 ;
}
static int opt_recording_time ( const char * opt , const char * arg )
@ -3211,7 +3224,7 @@ static enum CodecID find_codec_or_die(const char *name, int type, int encoder, i
return codec - > id ;
}
static void opt_input_file ( const char * filename )
static int opt_input_file ( const char * opt , const char * filename )
{
AVFormatContext * ic ;
AVFormatParameters params , * ap = & params ;
@ -3433,6 +3446,7 @@ static void opt_input_file(const char *filename)
av_freep ( & subtitle_codec_name ) ;
uninit_opts ( ) ;
init_opts ( ) ;
return 0 ;
}
static void check_inputs ( int * has_video_ptr ,
@ -4101,7 +4115,7 @@ static void show_help(void)
av_opt_show2 ( sws_opts , NULL , AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_DECODING_PARAM , 0 ) ;
}
static void opt_target ( const char * arg )
static int opt_target ( const char * opt , const char * arg )
{
enum { PAL , NTSC , FILM , UNKNOWN } norm = UNKNOWN ;
static const char * const frame_rates [ ] = { " 25 " , " 30000/1001 " , " 24000/1001 " } ;
@ -4158,13 +4172,12 @@ static void opt_target(const char *arg)
}
if ( ! strcmp ( arg , " vcd " ) ) {
opt_video_codec ( " vcodec " , " mpeg1video " ) ;
opt_audio_codec ( " vcodec " , " mp2 " ) ;
opt_format ( " f " , " vcd " ) ;
opt_video_codec ( " mpeg1video " ) ;
opt_audio_codec ( " mp2 " ) ;
opt_format ( " vcd " ) ;
opt_frame_size ( norm = = PAL ? " 352x288 " : " 352x240 " ) ;
opt_frame_rate ( NULL , frame_rates [ norm ] ) ;
opt_frame_size ( " s " , norm = = PAL ? " 352x288 " : " 352x240 " ) ;
opt_frame_rate ( " r " , frame_rates [ norm ] ) ;
opt_default ( " g " , norm = = PAL ? " 15 " : " 18 " ) ;
opt_default ( " b " , " 1150000 " ) ;
@ -4187,12 +4200,12 @@ static void opt_target(const char *arg)
mux_preload = ( 36000 + 3 * 1200 ) / 90000.0 ; //0.44
} else if ( ! strcmp ( arg , " svcd " ) ) {
opt_video_codec ( " mpeg2video " ) ;
opt_audio_codec ( " mp2 " ) ;
opt_format ( " svcd " ) ;
opt_video_codec ( " vcodec " , " mpeg2video " ) ;
opt_audio_codec ( " acodec " , " mp2 " ) ;
opt_format ( " f " , " svcd " ) ;
opt_frame_size ( norm = = PAL ? " 480x576 " : " 480x480 " ) ;
opt_frame_rate ( NULL , frame_rates [ norm ] ) ;
opt_frame_size ( " s " , norm = = PAL ? " 480x576 " : " 480x480 " ) ;
opt_frame_rate ( " r " , frame_rates [ norm ] ) ;
opt_default ( " g " , norm = = PAL ? " 15 " : " 18 " ) ;
opt_default ( " b " , " 2040000 " ) ;
@ -4209,12 +4222,12 @@ static void opt_target(const char *arg)
} else if ( ! strcmp ( arg , " dvd " ) ) {
opt_video_codec ( " mpeg2video " ) ;
opt_audio_codec ( " ac3 " ) ;
opt_format ( " dvd " ) ;
opt_video_codec ( " vcodec " , " mpeg2video " ) ;
opt_audio_codec ( " vcodec " , " ac3 " ) ;
opt_format ( " f " , " dvd " ) ;
opt_frame_size ( norm = = PAL ? " 720x576 " : " 720x480 " ) ;
opt_frame_rate ( NULL , frame_rates [ norm ] ) ;
opt_frame_size ( " vcodec " , norm = = PAL ? " 720x576 " : " 720x480 " ) ;
opt_frame_rate ( " r " , frame_rates [ norm ] ) ;
opt_default ( " g " , norm = = PAL ? " 15 " : " 18 " ) ;
opt_default ( " b " , " 6000000 " ) ;
@ -4230,29 +4243,31 @@ static void opt_target(const char *arg)
} else if ( ! strncmp ( arg , " dv " , 2 ) ) {
opt_format ( " dv " ) ;
opt_format ( " f " , " dv " ) ;
opt_frame_size ( norm = = PAL ? " 720x576 " : " 720x480 " ) ;
opt_frame_pix_fmt ( ! strncmp ( arg , " dv50 " , 4 ) ? " yuv422p " :
( norm = = PAL ? " yuv420p " : " yuv411p " ) ) ;
opt_frame_rate ( NULL , frame_rates [ norm ] ) ;
opt_frame_size ( " s " , norm = = PAL ? " 720x576 " : " 720x480 " ) ;
opt_frame_pix_fmt ( " pix_fmt " , ! strncmp ( arg , " dv50 " , 4 ) ? " yuv422p " :
norm = = PAL ? " yuv420p " : " yuv411p " ) ;
opt_frame_rate ( " r " , frame_rates [ norm ] ) ;
audio_sample_rate = 48000 ;
audio_channels = 2 ;
} else {
fprintf ( stderr , " Unknown target: %s \n " , arg ) ;
ffmpeg_exit ( 1 ) ;
return AVERROR ( EINVAL ) ;
}
return 0 ;
}
static void opt_vstats_file ( const char * arg )
static int opt_vstats_file ( const char * opt , const char * arg )
{
av_free ( vstats_filename ) ;
vstats_filename = av_strdup ( arg ) ;
return 0 ;
}
static void opt_vstats ( void )
static int opt_vstats ( const char * opt , const char * arg )
{
char filename [ 40 ] ;
time_t today2 = time ( NULL ) ;
@ -4260,7 +4275,7 @@ static void opt_vstats (void)
snprintf ( filename , sizeof ( filename ) , " vstats_%02d%02d%02d.log " , today - > tm_hour , today - > tm_min ,
today - > tm_sec ) ;
opt_vstats_file ( filename ) ;
return opt_vstats_file ( opt , filename ) ;
}
static int opt_bsf ( const char * opt , const char * arg )
@ -4307,13 +4322,13 @@ static int opt_preset(const char *opt, const char *arg)
ffmpeg_exit ( 1 ) ;
}
if ( ! strcmp ( tmp , " acodec " ) ) {
opt_audio_codec ( tmp2 ) ;
opt_audio_codec ( tmp , tmp 2) ;
} else if ( ! strcmp ( tmp , " vcodec " ) ) {
opt_video_codec ( tmp2 ) ;
opt_video_codec ( tmp , tmp 2) ;
} else if ( ! strcmp ( tmp , " scodec " ) ) {
opt_subtitle_codec ( tmp2 ) ;
opt_subtitle_codec ( tmp , tmp 2) ;
} else if ( ! strcmp ( tmp , " dcodec " ) ) {
opt_data_codec ( tmp2 ) ;
opt_data_codec ( tmp , tmp 2) ;
} else if ( opt_default ( tmp , tmp2 ) < 0 ) {
fprintf ( stderr , " %s: Invalid option or argument: '%s', parsed as '%s' = '%s' \n " , filename , line , tmp , tmp2 ) ;
ffmpeg_exit ( 1 ) ;
@ -4347,17 +4362,17 @@ static const OptionDef options[] = {
{ " map_metadata " , HAS_ARG | OPT_EXPERT , { ( void * ) opt_map_metadata } , " set metadata information of outfile from infile " ,
" outfile[,metadata]:infile[,metadata] " } ,
{ " map_chapters " , HAS_ARG | OPT_EXPERT , { ( void * ) opt_map_chapters } , " set chapters mapping " , " outfile:infile " } ,
{ " t " , OPT_FUNC2 | HAS_ARG , { ( void * ) opt_recording_time } , " record or transcode \" duration \" seconds of audio/video " , " duration " } ,
{ " t " , HAS_ARG , { ( void * ) opt_recording_time } , " record or transcode \" duration \" seconds of audio/video " , " duration " } ,
{ " fs " , HAS_ARG | OPT_INT64 , { ( void * ) & limit_filesize } , " set the limit file size in bytes " , " limit_size " } , //
{ " ss " , OPT_FUNC2 | HAS_ARG , { ( void * ) opt_start_time } , " set the start time offset " , " time_off " } ,
{ " itsoffset " , OPT_FUNC2 | HAS_ARG , { ( void * ) opt_input_ts_offset } , " set the input ts offset " , " time_off " } ,
{ " ss " , HAS_ARG , { ( void * ) opt_start_time } , " set the start time offset " , " time_off " } ,
{ " itsoffset " , HAS_ARG , { ( void * ) opt_input_ts_offset } , " set the input ts offset " , " time_off " } ,
{ " itsscale " , HAS_ARG , { ( void * ) opt_input_ts_scale } , " set the input ts scale " , " stream:scale " } ,
{ " timestamp " , OPT_FUNC2 | HAS_ARG , { ( void * ) opt_recording_timestamp } , " set the recording timestamp ('now' to set the current time) " , " time " } ,
{ " metadata " , OPT_FUNC2 | HAS_ARG , { ( void * ) opt_metadata } , " add metadata " , " string=string " } ,
{ " timestamp " , HAS_ARG , { ( void * ) opt_recording_timestamp } , " set the recording timestamp ('now' to set the current time) " , " time " } ,
{ " metadata " , HAS_ARG , { ( void * ) opt_metadata } , " add metadata " , " string=string " } ,
{ " dframes " , OPT_INT | HAS_ARG , { ( void * ) & max_frames [ AVMEDIA_TYPE_DATA ] } , " set the number of data frames to record " , " number " } ,
{ " benchmark " , OPT_BOOL | OPT_EXPERT , { ( void * ) & do_benchmark } ,
" add timings for benchmarking " } ,
{ " timelimit " , OPT_FUNC2 | HAS_ARG , { ( void * ) opt_timelimit } , " set max runtime in seconds " , " limit " } ,
{ " timelimit " , HAS_ARG , { ( void * ) opt_timelimit } , " set max runtime in seconds " , " limit " } ,
{ " dump " , OPT_BOOL | OPT_EXPERT , { ( void * ) & do_pkt_dump } ,
" dump each input packet " } ,
{ " hex " , OPT_BOOL | OPT_EXPERT , { ( void * ) & do_hex_dump } ,
@ -4365,9 +4380,9 @@ static const OptionDef options[] = {
{ " re " , OPT_BOOL | OPT_EXPERT , { ( void * ) & rate_emu } , " read input at native frame rate " , " " } ,
{ " loop_input " , OPT_BOOL | OPT_EXPERT , { ( void * ) & loop_input } , " loop (current only works with images) " } ,
{ " loop_output " , HAS_ARG | OPT_INT | OPT_EXPERT , { ( void * ) & loop_output } , " number of times to loop output in formats that support looping (0 loops forever) " , " " } ,
{ " v " , HAS_ARG | OPT_FUNC2 , { ( void * ) opt_verbose } , " set ffmpeg verbosity level " , " number " } ,
{ " v " , HAS_ARG , { ( void * ) opt_verbose } , " set ffmpeg verbosity level " , " number " } ,
{ " target " , HAS_ARG , { ( void * ) opt_target } , " specify target file type ( \" vcd \" , \" svcd \" , \" dvd \" , \" dv \" , \" dv50 \" , \" pal-vcd \" , \" ntsc-svcd \" , ...) " , " type " } ,
{ " threads " , OPT_FUNC2 | HAS_ARG | OPT_EXPERT , { ( void * ) opt_thread_count } , " thread count " , " count " } ,
{ " threads " , HAS_ARG | OPT_EXPERT , { ( void * ) opt_thread_count } , " thread count " , " count " } ,
{ " vsync " , HAS_ARG | OPT_INT | OPT_EXPERT , { ( void * ) & video_sync_method } , " video sync method " , " " } ,
{ " async " , HAS_ARG | OPT_INT | OPT_EXPERT , { ( void * ) & audio_sync_method } , " audio sync method " , " " } ,
{ " adrift_threshold " , HAS_ARG | OPT_FLOAT | OPT_EXPERT , { ( void * ) & audio_drift_threshold } , " audio drift threshold " , " threshold " } ,
@ -4380,33 +4395,33 @@ static const OptionDef options[] = {
{ " copyinkf " , OPT_BOOL | OPT_EXPERT , { ( void * ) & copy_initial_nonkeyframes } , " copy initial non-keyframes " } ,
/* video options */
{ " b " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_bitrate } , " set bitrate (in bits/s) " , " bitrate " } ,
{ " vb " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_bitrate } , " set bitrate (in bits/s) " , " bitrate " } ,
{ " b " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_bitrate } , " set bitrate (in bits/s) " , " bitrate " } ,
{ " vb " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_bitrate } , " set bitrate (in bits/s) " , " bitrate " } ,
{ " vframes " , OPT_INT | HAS_ARG | OPT_VIDEO , { ( void * ) & max_frames [ AVMEDIA_TYPE_VIDEO ] } , " set the number of video frames to record " , " number " } ,
{ " r " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_rate } , " set frame rate (Hz value, fraction or abbreviation) " , " rate " } ,
{ " r " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_rate } , " set frame rate (Hz value, fraction or abbreviation) " , " rate " } ,
{ " s " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_size } , " set frame size (WxH or abbreviation) " , " size " } ,
{ " aspect " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_aspect_ratio } , " set aspect ratio (4:3, 16:9 or 1.3333, 1.7777) " , " aspect " } ,
{ " pix_fmt " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_frame_pix_fmt } , " set pixel format, 'list' as argument shows all the pixel formats supported " , " format " } ,
{ " bits_per_raw_sample " , OPT_INT | HAS_ARG | OPT_VIDEO , { ( void * ) & frame_bits_per_raw_sample } , " set the number of bits per raw sample " , " number " } ,
{ " croptop " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " cropbottom " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " cropleft " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " cropright " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " padtop " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padbottom " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padleft " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padright " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padcolor " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " color " } ,
{ " croptop " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " cropbottom " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " cropleft " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " cropright " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_frame_crop } , " Removed, use the crop filter instead " , " size " } ,
{ " padtop " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padbottom " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padleft " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padright " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " size " } ,
{ " padcolor " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_pad } , " Removed, use the pad filter instead " , " color " } ,
{ " intra " , OPT_BOOL | OPT_EXPERT | OPT_VIDEO , { ( void * ) & intra_only } , " use only intra frames " } ,
{ " vn " , OPT_BOOL | OPT_VIDEO , { ( void * ) & video_disable } , " disable video " } ,
{ " vdt " , OPT_INT | HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) & video_discard } , " discard threshold " , " n " } ,
{ " qscale " , HAS_ARG | OPT_FUNC2 | OPT_ EXPERT | OPT_VIDEO , { ( void * ) opt_qscale } , " use fixed video quantizer scale (VBR) " , " q " } ,
{ " qscale " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_qscale } , " use fixed video quantizer scale (VBR) " , " q " } ,
{ " rc_override " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_video_rc_override_string } , " rate control override for specific intervals " , " override " } ,
{ " vcodec " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_video_codec } , " force video codec ('copy' to copy stream) " , " codec " } ,
{ " me_threshold " , HAS_ARG | OPT_FUNC2 | OPT_ EXPERT | OPT_VIDEO , { ( void * ) opt_me_threshold } , " motion estimaton threshold " , " threshold " } ,
{ " me_threshold " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_me_threshold } , " motion estimaton threshold " , " threshold " } ,
{ " sameq " , OPT_BOOL | OPT_VIDEO , { ( void * ) & same_quality } ,
" use same quantizer as source (implies VBR) " } ,
{ " pass " , HAS_ARG | OPT_FUNC2 | OPT_ VIDEO , { ( void * ) opt_pass } , " select the pass number (1 or 2) " , " n " } ,
{ " pass " , HAS_ARG | OPT_VIDEO , { ( void * ) opt_pass } , " select the pass number (1 or 2) " , " n " } ,
{ " passlogfile " , HAS_ARG | OPT_VIDEO , { ( void * ) & opt_passlogfile } , " select two pass log file name prefix " , " prefix " } ,
{ " deinterlace " , OPT_BOOL | OPT_EXPERT | OPT_VIDEO , { ( void * ) & do_deinterlace } ,
" deinterlace pictures " } ,
@ -4418,39 +4433,39 @@ static const OptionDef options[] = {
# endif
{ " intra_matrix " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_intra_matrix } , " specify intra matrix coeffs " , " matrix " } ,
{ " inter_matrix " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_inter_matrix } , " specify inter matrix coeffs " , " matrix " } ,
{ " top " , HAS_ARG | OPT_FUNC2 | OPT_ EXPERT | OPT_VIDEO , { ( void * ) opt_top_field_first } , " top=1/bottom=0/auto=-1 field first " , " " } ,
{ " top " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_top_field_first } , " top=1/bottom=0/auto=-1 field first " , " " } ,
{ " dc " , OPT_INT | HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) & intra_dc_precision } , " intra_dc_precision " , " precision " } ,
{ " vtag " , OPT_FUNC2 | HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_codec_tag } , " force video tag/fourcc " , " fourcc/tag " } ,
{ " newvideo " , OPT_VIDEO | OPT_FUNC2 , { ( void * ) opt_new_stream } , " add a new video stream to the current output stream " } ,
{ " vtag " , HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) opt_codec_tag } , " force video tag/fourcc " , " fourcc/tag " } ,
{ " newvideo " , OPT_VIDEO , { ( void * ) opt_new_stream } , " add a new video stream to the current output stream " } ,
{ " vlang " , HAS_ARG | OPT_STRING | OPT_VIDEO , { ( void * ) & video_language } , " set the ISO 639 language code (3 letters) of the current video stream " , " code " } ,
{ " qphist " , OPT_BOOL | OPT_EXPERT | OPT_VIDEO , { ( void * ) & qp_hist } , " show QP histogram " } ,
{ " force_fps " , OPT_BOOL | OPT_EXPERT | OPT_VIDEO , { ( void * ) & force_fps } , " force the selected framerate, disable the best supported framerate selection " } ,
{ " streamid " , OPT_FUNC2 | HAS_ARG | OPT_EXPERT , { ( void * ) opt_streamid } , " set the value of an outfile streamid " , " streamIndex:value " } ,
{ " streamid " , HAS_ARG | OPT_EXPERT , { ( void * ) opt_streamid } , " set the value of an outfile streamid " , " streamIndex:value " } ,
{ " force_key_frames " , OPT_STRING | HAS_ARG | OPT_EXPERT | OPT_VIDEO , { ( void * ) & forced_key_frames } , " force key frames at specified timestamps " , " timestamps " } ,
/* audio options */
{ " ab " , OPT_FUNC2 | HAS_ARG | OPT_AUDIO , { ( void * ) opt_bitrate } , " set bitrate (in bits/s) " , " bitrate " } ,
{ " ab " , HAS_ARG | OPT_AUDIO , { ( void * ) opt_bitrate } , " set bitrate (in bits/s) " , " bitrate " } ,
{ " aframes " , OPT_INT | HAS_ARG | OPT_AUDIO , { ( void * ) & max_frames [ AVMEDIA_TYPE_AUDIO ] } , " set the number of audio frames to record " , " number " } ,
{ " aq " , OPT_FLOAT | HAS_ARG | OPT_AUDIO , { ( void * ) & audio_qscale } , " set audio quality (codec-specific) " , " quality " , } ,
{ " ar " , HAS_ARG | OPT_FUNC2 | OPT_ AUDIO , { ( void * ) opt_audio_rate } , " set audio sampling rate (in Hz) " , " rate " } ,
{ " ac " , HAS_ARG | OPT_FUNC2 | OPT_ AUDIO , { ( void * ) opt_audio_channels } , " set number of audio channels " , " channels " } ,
{ " ar " , HAS_ARG | OPT_AUDIO , { ( void * ) opt_audio_rate } , " set audio sampling rate (in Hz) " , " rate " } ,
{ " ac " , HAS_ARG | OPT_AUDIO , { ( void * ) opt_audio_channels } , " set number of audio channels " , " channels " } ,
{ " an " , OPT_BOOL | OPT_AUDIO , { ( void * ) & audio_disable } , " disable audio " } ,
{ " acodec " , HAS_ARG | OPT_AUDIO , { ( void * ) opt_audio_codec } , " force audio codec ('copy' to copy stream) " , " codec " } ,
{ " atag " , OPT_FUNC2 | HAS_ARG | OPT_EXPERT | OPT_AUDIO , { ( void * ) opt_codec_tag } , " force audio tag/fourcc " , " fourcc/tag " } ,
{ " atag " , HAS_ARG | OPT_EXPERT | OPT_AUDIO , { ( void * ) opt_codec_tag } , " force audio tag/fourcc " , " fourcc/tag " } ,
{ " vol " , OPT_INT | HAS_ARG | OPT_AUDIO , { ( void * ) & audio_volume } , " change audio volume (256=normal) " , " volume " } , //
{ " newaudio " , OPT_AUDIO | OPT_FUNC2 , { ( void * ) opt_new_stream } , " add a new audio stream to the current output stream " } ,
{ " newaudio " , OPT_AUDIO , { ( void * ) opt_new_stream } , " add a new audio stream to the current output stream " } ,
{ " alang " , HAS_ARG | OPT_STRING | OPT_AUDIO , { ( void * ) & audio_language } , " set the ISO 639 language code (3 letters) of the current audio stream " , " code " } ,
{ " sample_fmt " , HAS_ARG | OPT_EXPERT | OPT_AUDIO , { ( void * ) opt_audio_sample_fmt } , " set sample format, 'list' as argument shows all the sample formats supported " , " format " } ,
/* subtitle options */
{ " sn " , OPT_BOOL | OPT_SUBTITLE , { ( void * ) & subtitle_disable } , " disable subtitle " } ,
{ " scodec " , HAS_ARG | OPT_SUBTITLE , { ( void * ) opt_subtitle_codec } , " force subtitle codec ('copy' to copy stream) " , " codec " } ,
{ " newsubtitle " , OPT_SUBTITLE | OPT_FUNC2 , { ( void * ) opt_new_stream } , " add a new subtitle stream to the current output stream " } ,
{ " newsubtitle " , OPT_SUBTITLE , { ( void * ) opt_new_stream } , " add a new subtitle stream to the current output stream " } ,
{ " slang " , HAS_ARG | OPT_STRING | OPT_SUBTITLE , { ( void * ) & subtitle_language } , " set the ISO 639 language code (3 letters) of the current subtitle stream " , " code " } ,
{ " stag " , OPT_FUNC2 | HAS_ARG | OPT_EXPERT | OPT_SUBTITLE , { ( void * ) opt_codec_tag } , " force subtitle tag/fourcc " , " fourcc/tag " } ,
{ " stag " , HAS_ARG | OPT_EXPERT | OPT_SUBTITLE , { ( void * ) opt_codec_tag } , " force subtitle tag/fourcc " , " fourcc/tag " } ,
/* grab options */
{ " vc " , HAS_ARG | OPT_FUNC2 | OPT_ EXPERT | OPT_VIDEO | OPT_GRAB , { ( void * ) opt_video_channel } , " set video grab channel (DV1394 only) " , " channel " } ,
{ " vc " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_GRAB , { ( void * ) opt_video_channel } , " set video grab channel (DV1394 only) " , " channel " } ,
{ " tvstd " , HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_GRAB , { ( void * ) opt_video_standard } , " set television standard (NTSC, PAL (SECAM)) " , " standard " } ,
{ " isync " , OPT_BOOL | OPT_EXPERT | OPT_GRAB , { ( void * ) & input_sync } , " sync read on input " , " " } ,
@ -4458,18 +4473,18 @@ static const OptionDef options[] = {
{ " muxdelay " , OPT_FLOAT | HAS_ARG | OPT_EXPERT , { ( void * ) & mux_max_delay } , " set the maximum demux-decode delay " , " seconds " } ,
{ " muxpreload " , OPT_FLOAT | HAS_ARG | OPT_EXPERT , { ( void * ) & mux_preload } , " set the initial demux-decode delay " , " seconds " } ,
{ " absf " , OPT_FUNC2 | HAS_ARG | OPT_AUDIO | OPT_EXPERT , { ( void * ) opt_bsf } , " " , " bitstream_filter " } ,
{ " vbsf " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO | OPT_EXPERT , { ( void * ) opt_bsf } , " " , " bitstream_filter " } ,
{ " sbsf " , OPT_FUNC2 | HAS_ARG | OPT_SUBTITLE | OPT_EXPERT , { ( void * ) opt_bsf } , " " , " bitstream_filter " } ,
{ " absf " , HAS_ARG | OPT_AUDIO | OPT_EXPERT , { ( void * ) opt_bsf } , " " , " bitstream_filter " } ,
{ " vbsf " , HAS_ARG | OPT_VIDEO | OPT_EXPERT , { ( void * ) opt_bsf } , " " , " bitstream_filter " } ,
{ " sbsf " , HAS_ARG | OPT_SUBTITLE | OPT_EXPERT , { ( void * ) opt_bsf } , " " , " bitstream_filter " } ,
{ " apre " , OPT_FUNC2 | HAS_ARG | OPT_AUDIO | OPT_EXPERT , { ( void * ) opt_preset } , " set the audio options to the indicated preset " , " preset " } ,
{ " vpre " , OPT_FUNC2 | HAS_ARG | OPT_VIDEO | OPT_EXPERT , { ( void * ) opt_preset } , " set the video options to the indicated preset " , " preset " } ,
{ " spre " , OPT_FUNC2 | HAS_ARG | OPT_SUBTITLE | OPT_EXPERT , { ( void * ) opt_preset } , " set the subtitle options to the indicated preset " , " preset " } ,
{ " fpre " , OPT_FUNC2 | HAS_ARG | OPT_EXPERT , { ( void * ) opt_preset } , " set options from indicated preset file " , " filename " } ,
{ " apre " , HAS_ARG | OPT_AUDIO | OPT_EXPERT , { ( void * ) opt_preset } , " set the audio options to the indicated preset " , " preset " } ,
{ " vpre " , HAS_ARG | OPT_VIDEO | OPT_EXPERT , { ( void * ) opt_preset } , " set the video options to the indicated preset " , " preset " } ,
{ " spre " , HAS_ARG | OPT_SUBTITLE | OPT_EXPERT , { ( void * ) opt_preset } , " set the subtitle options to the indicated preset " , " preset " } ,
{ " fpre " , HAS_ARG | OPT_EXPERT , { ( void * ) opt_preset } , " set options from indicated preset file " , " filename " } ,
/* data codec support */
{ " dcodec " , HAS_ARG | OPT_DATA , { ( void * ) opt_data_codec } , " force data codec ('copy' to copy stream) " , " codec " } ,
{ " default " , OPT_FUNC2 | HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT , { ( void * ) opt_default } , " generic catch all option " , " " } ,
{ " default " , HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT , { ( void * ) opt_default } , " generic catch all option " , " " } ,
{ NULL , } ,
} ;