img2enc: add an option for overwriting one file with subsequent images
Based on a patch by Michael Niedermayer <michaelni@gmx.at>.
This commit is contained in:
parent
ac9362c5d9
commit
9e6b5e61a0
@ -171,6 +171,12 @@ avconv -i in.avi -f image2 -frames:v 1 img.jpeg
|
|||||||
@table @option
|
@table @option
|
||||||
@item -start_number @var{number}
|
@item -start_number @var{number}
|
||||||
Start the sequence from @var{number}.
|
Start the sequence from @var{number}.
|
||||||
|
|
||||||
|
@item -update @var{number}
|
||||||
|
If @var{number} is nonzero, the filename will always be interpreted as just a
|
||||||
|
filename, not a pattern, and this file will be continuously overwritten with new
|
||||||
|
images.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@section MOV/MP4/ISMV
|
@section MOV/MP4/ISMV
|
||||||
|
@ -33,6 +33,7 @@ typedef struct {
|
|||||||
int img_number;
|
int img_number;
|
||||||
int is_pipe;
|
int is_pipe;
|
||||||
char path[1024];
|
char path[1024];
|
||||||
|
int update;
|
||||||
} VideoMuxData;
|
} VideoMuxData;
|
||||||
|
|
||||||
static int write_header(AVFormatContext *s)
|
static int write_header(AVFormatContext *s)
|
||||||
@ -59,8 +60,10 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!img->is_pipe) {
|
if (!img->is_pipe) {
|
||||||
if (av_get_frame_filename(filename, sizeof(filename),
|
if (img->update) {
|
||||||
img->path, img->img_number) < 0 && img->img_number > 1) {
|
av_strlcpy(filename, img->path, sizeof(filename));
|
||||||
|
} else if (av_get_frame_filename(filename, sizeof(filename), img->path, img->img_number) < 0 &&
|
||||||
|
img->img_number > 1) {
|
||||||
av_log(s, AV_LOG_ERROR,
|
av_log(s, AV_LOG_ERROR,
|
||||||
"Could not get frame filename number %d from pattern '%s'\n",
|
"Could not get frame filename number %d from pattern '%s'\n",
|
||||||
img->img_number, img->path);
|
img->img_number, img->path);
|
||||||
@ -128,6 +131,7 @@ error:
|
|||||||
#define ENC AV_OPT_FLAG_ENCODING_PARAM
|
#define ENC AV_OPT_FLAG_ENCODING_PARAM
|
||||||
static const AVOption muxoptions[] = {
|
static const AVOption muxoptions[] = {
|
||||||
{ "start_number", "first number in the sequence", OFFSET(img_number), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, ENC },
|
{ "start_number", "first number in the sequence", OFFSET(img_number), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, ENC },
|
||||||
|
{ "update", "continuously overwrite one file", OFFSET(update), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, ENC },
|
||||||
{ NULL },
|
{ NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user