avconv: support forcing codec tags for input streams
This commit is contained in:
parent
d59fcdaff3
commit
746dca483a
12
avconv_opt.c
12
avconv_opt.c
@ -463,6 +463,8 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
|
|||||||
AVCodecContext *dec = st->codec;
|
AVCodecContext *dec = st->codec;
|
||||||
InputStream *ist = av_mallocz(sizeof(*ist));
|
InputStream *ist = av_mallocz(sizeof(*ist));
|
||||||
char *framerate = NULL, *hwaccel = NULL, *hwaccel_device = NULL;
|
char *framerate = NULL, *hwaccel = NULL, *hwaccel_device = NULL;
|
||||||
|
char *codec_tag = NULL;
|
||||||
|
char *next;
|
||||||
|
|
||||||
if (!ist)
|
if (!ist)
|
||||||
exit_program(1);
|
exit_program(1);
|
||||||
@ -478,6 +480,14 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
|
|||||||
ist->ts_scale = 1.0;
|
ist->ts_scale = 1.0;
|
||||||
MATCH_PER_STREAM_OPT(ts_scale, dbl, ist->ts_scale, ic, st);
|
MATCH_PER_STREAM_OPT(ts_scale, dbl, ist->ts_scale, ic, st);
|
||||||
|
|
||||||
|
MATCH_PER_STREAM_OPT(codec_tags, str, codec_tag, ic, st);
|
||||||
|
if (codec_tag) {
|
||||||
|
uint32_t tag = strtol(codec_tag, &next, 0);
|
||||||
|
if (*next)
|
||||||
|
tag = AV_RL32(codec_tag);
|
||||||
|
st->codec->codec_tag = tag;
|
||||||
|
}
|
||||||
|
|
||||||
ist->dec = choose_decoder(o, ic, st);
|
ist->dec = choose_decoder(o, ic, st);
|
||||||
ist->opts = filter_codec_opts(o->g->codec_opts, ist->st->codec->codec_id, ic, st, ist->dec);
|
ist->opts = filter_codec_opts(o->g->codec_opts, ist->st->codec->codec_id, ic, st, ist->dec);
|
||||||
|
|
||||||
@ -2238,7 +2248,7 @@ const OptionDef options[] = {
|
|||||||
{ "frames", OPT_INT64 | HAS_ARG | OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(max_frames) },
|
{ "frames", OPT_INT64 | HAS_ARG | OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(max_frames) },
|
||||||
"set the number of frames to record", "number" },
|
"set the number of frames to record", "number" },
|
||||||
{ "tag", OPT_STRING | HAS_ARG | OPT_SPEC |
|
{ "tag", OPT_STRING | HAS_ARG | OPT_SPEC |
|
||||||
OPT_EXPERT | OPT_OUTPUT, { .off = OFFSET(codec_tags) },
|
OPT_EXPERT | OPT_OUTPUT | OPT_INPUT, { .off = OFFSET(codec_tags) },
|
||||||
"force codec tag/fourcc", "fourcc/tag" },
|
"force codec tag/fourcc", "fourcc/tag" },
|
||||||
{ "q", HAS_ARG | OPT_EXPERT | OPT_DOUBLE |
|
{ "q", HAS_ARG | OPT_EXPERT | OPT_DOUBLE |
|
||||||
OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(qscale) },
|
OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(qscale) },
|
||||||
|
@ -821,7 +821,7 @@ avconv -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
|
|||||||
avconv -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
|
avconv -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{output,per-stream})
|
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{input/output,per-stream})
|
||||||
Force a tag/fourcc for matching streams.
|
Force a tag/fourcc for matching streams.
|
||||||
|
|
||||||
@item -filter_complex @var{filtergraph} (@emph{global})
|
@item -filter_complex @var{filtergraph} (@emph{global})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user