Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
e3245b26
Commit
e3245b26
authored
Sep 13, 2011
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avconv: replace all fprintf() by av_log().
Deprecate -v option, now only -loglevel is enough.
parent
f24facd3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
118 additions
and
133 deletions
+118
-133
avconv.c
avconv.c
+116
-132
avconv.texi
doc/avconv.texi
+2
-1
No files found.
avconv.c
View file @
e3245b26
...
...
@@ -123,7 +123,6 @@ static int audio_volume = 256;
static
int
exit_on_error
=
0
;
static
int
using_stdin
=
0
;
static
int
verbose
=
1
;
static
int64_t
video_size
=
0
;
static
int64_t
audio_size
=
0
;
static
int64_t
extra_size
=
0
;
...
...
@@ -536,9 +535,8 @@ void exit_program(int ret)
#endif
if
(
received_sigterm
)
{
fprintf
(
stderr
,
"Received signal %d: terminating.
\n
"
,
(
int
)
received_sigterm
);
av_log
(
NULL
,
AV_LOG_INFO
,
"Received signal %d: terminating.
\n
"
,
(
int
)
received_sigterm
);
exit
(
255
);
}
...
...
@@ -698,9 +696,9 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, AVCodecContext *avctx
av_free_packet
(
pkt
);
new_pkt
.
destruct
=
av_destruct_packet
;
}
else
if
(
a
<
0
){
fprintf
(
stderr
,
"%s failed for stream %d, codec %s"
,
bsfc
->
filter
->
name
,
pkt
->
stream_index
,
avctx
->
codec
?
avctx
->
codec
->
name
:
"copy"
);
av_log
(
NULL
,
AV_LOG_ERROR
,
"%s failed for stream %d, codec %s"
,
bsfc
->
filter
->
name
,
pkt
->
stream_index
,
avctx
->
codec
?
avctx
->
codec
->
name
:
"copy"
);
print_error
(
""
,
a
);
if
(
exit_on_error
)
exit_program
(
1
);
...
...
@@ -746,14 +744,14 @@ need_realloc:
audio_out_size
+=
FF_MIN_BUFFER_SIZE
;
if
(
audio_out_size
>
INT_MAX
||
audio_buf_size
>
INT_MAX
){
fprintf
(
stderr
,
"Buffer sizes too large
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Buffer sizes too large
\n
"
);
exit_program
(
1
);
}
av_fast_malloc
(
&
audio_buf
,
&
allocated_audio_buf_size
,
audio_buf_size
);
av_fast_malloc
(
&
audio_out
,
&
allocated_audio_out_size
,
audio_out_size
);
if
(
!
audio_buf
||
!
audio_out
){
fprintf
(
stderr
,
"Out of memory in do_audio_out
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Out of memory in do_audio_out
\n
"
);
exit_program
(
1
);
}
...
...
@@ -785,15 +783,15 @@ need_realloc:
ost
->
audio_resample
=
0
;
}
else
if
(
ost
->
audio_resample
)
{
if
(
dec
->
sample_fmt
!=
AV_SAMPLE_FMT_S16
)
fprintf
(
stderr
,
"Warning, u
sing s16 intermediate sample format for resampling
\n
"
);
av_log
(
NULL
,
AV_LOG_WARNING
,
"U
sing s16 intermediate sample format for resampling
\n
"
);
ost
->
resample
=
av_audio_resample_init
(
enc
->
channels
,
dec
->
channels
,
enc
->
sample_rate
,
dec
->
sample_rate
,
enc
->
sample_fmt
,
dec
->
sample_fmt
,
16
,
10
,
0
,
0
.
8
);
if
(
!
ost
->
resample
)
{
fprintf
(
stderr
,
"Can not resample %d channels @ %d Hz to %d channels @ %d Hz
\n
"
,
dec
->
channels
,
dec
->
sample_rate
,
enc
->
channels
,
enc
->
sample_rate
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Can not resample %d channels @ %d Hz to %d channels @ %d Hz
\n
"
,
dec
->
channels
,
dec
->
sample_rate
,
enc
->
channels
,
enc
->
sample_rate
);
exit_program
(
1
);
}
}
...
...
@@ -807,9 +805,9 @@ need_realloc:
ost
->
reformat_ctx
=
av_audio_convert_alloc
(
enc
->
sample_fmt
,
1
,
dec
->
sample_fmt
,
1
,
NULL
,
0
);
if
(
!
ost
->
reformat_ctx
)
{
fprintf
(
stderr
,
"Cannot convert %s sample format to %s sample format
\n
"
,
av_get_sample_fmt_name
(
dec
->
sample_fmt
),
av_get_sample_fmt_name
(
enc
->
sample_fmt
));
av_log
(
NULL
,
AV_LOG_FATAL
,
"Cannot convert %s sample format to %s sample format
\n
"
,
av_get_sample_fmt_name
(
dec
->
sample_fmt
),
av_get_sample_fmt_name
(
enc
->
sample_fmt
));
exit_program
(
1
);
}
ost
->
reformat_pair
=
MAKE_SFMT_PAIR
(
enc
->
sample_fmt
,
dec
->
sample_fmt
);
...
...
@@ -828,8 +826,7 @@ need_realloc:
byte_delta
=
FFMAX
(
byte_delta
,
-
size
);
size
+=
byte_delta
;
buf
-=
byte_delta
;
if
(
verbose
>
2
)
fprintf
(
stderr
,
"discarding %d audio samples
\n
"
,
(
int
)
-
delta
);
av_log
(
NULL
,
AV_LOG_VERBOSE
,
"discarding %d audio samples
\n
"
,
(
int
)
-
delta
);
if
(
!
size
)
return
;
ist
->
is_start
=
0
;
...
...
@@ -847,14 +844,13 @@ need_realloc:
memcpy
(
input_tmp
+
byte_delta
,
buf
,
size
);
buf
=
input_tmp
;
size
+=
byte_delta
;
if
(
verbose
>
2
)
fprintf
(
stderr
,
"adding %d audio samples of silence
\n
"
,
(
int
)
delta
);
av_log
(
NULL
,
AV_LOG_VERBOSE
,
"adding %d audio samples of silence
\n
"
,
(
int
)
delta
);
}
}
else
if
(
audio_sync_method
>
1
){
int
comp
=
av_clip
(
delta
,
-
audio_sync_method
,
audio_sync_method
);
av_assert0
(
ost
->
audio_resample
);
if
(
verbose
>
2
)
fprintf
(
stderr
,
"compensating audio timestamp drift:%f compensation:%d in:%d
\n
"
,
delta
,
comp
,
enc
->
sample_rate
);
av_log
(
NULL
,
AV_LOG_VERBOSE
,
"compensating audio timestamp drift:%f compensation:%d in:%d
\n
"
,
delta
,
comp
,
enc
->
sample_rate
);
// fprintf(stderr, "drift:%f len:%d opts:%"PRId64" ipts:%"PRId64" fifo:%d\n", delta, -1, ost->sync_opts, (int64_t)(get_sync_ipts(ost) * enc->sample_rate), av_fifo_size(ost->fifo)/(ost->st->codec->channels * 2));
av_resample_compensate
(
*
(
struct
AVResampleContext
**
)
ost
->
resample
,
comp
,
enc
->
sample_rate
);
}
...
...
@@ -894,7 +890,7 @@ need_realloc:
if
(
enc
->
frame_size
>
1
)
{
/* output resampled raw samples */
if
(
av_fifo_realloc2
(
ost
->
fifo
,
av_fifo_size
(
ost
->
fifo
)
+
size_out
)
<
0
)
{
fprintf
(
stderr
,
"av_fifo_realloc2() failed
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"av_fifo_realloc2() failed
\n
"
);
exit_program
(
1
);
}
av_fifo_generic_write
(
ost
->
fifo
,
buftmp
,
size_out
,
NULL
);
...
...
@@ -912,7 +908,7 @@ need_realloc:
ret
=
avcodec_encode_audio
(
enc
,
audio_out
,
audio_out_size
,
(
short
*
)
audio_buf
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"Audio encoding failed
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Audio encoding failed
\n
"
);
exit_program
(
1
);
}
audio_size
+=
ret
;
...
...
@@ -939,7 +935,7 @@ need_realloc:
size_out
=
size_out
*
coded_bps
/
8
;
if
(
size_out
>
audio_out_size
){
fprintf
(
stderr
,
"Internal error, buffer size too small
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Internal error, buffer size too small
\n
"
);
exit_program
(
1
);
}
...
...
@@ -947,7 +943,7 @@ need_realloc:
ret
=
avcodec_encode_audio
(
enc
,
audio_out
,
size_out
,
(
short
*
)
buftmp
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"Audio encoding failed
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Audio encoding failed
\n
"
);
exit_program
(
1
);
}
audio_size
+=
ret
;
...
...
@@ -986,7 +982,7 @@ static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void *
if
(
avpicture_deinterlace
(
picture2
,
picture
,
dec
->
pix_fmt
,
dec
->
width
,
dec
->
height
)
<
0
)
{
/* if error, do not deinterlace */
fprintf
(
stderr
,
"Deinterlacing failed
\n
"
);
av_log
(
NULL
,
AV_LOG_WARNING
,
"Deinterlacing failed
\n
"
);
av_free
(
buf
);
buf
=
NULL
;
picture2
=
picture
;
...
...
@@ -1013,7 +1009,7 @@ static void do_subtitle_out(AVFormatContext *s,
AVPacket
pkt
;
if
(
pts
==
AV_NOPTS_VALUE
)
{
fprintf
(
stderr
,
"Subtitle packets must have a pts
\n
"
);
av_log
(
NULL
,
AV_LOG_ERROR
,
"Subtitle packets must have a pts
\n
"
);
if
(
exit_on_error
)
exit_program
(
1
);
return
;
...
...
@@ -1042,7 +1038,7 @@ static void do_subtitle_out(AVFormatContext *s,
subtitle_out_size
=
avcodec_encode_subtitle
(
enc
,
subtitle_out
,
subtitle_out_max_size
,
sub
);
if
(
subtitle_out_size
<
0
)
{
fprintf
(
stderr
,
"Subtitle encoding failed
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Subtitle encoding failed
\n
"
);
exit_program
(
1
);
}
...
...
@@ -1104,7 +1100,7 @@ static void do_video_resample(OutputStream *ost,
ost
->
st
->
codec
->
pix_fmt
,
ost
->
sws_flags
,
NULL
,
NULL
,
NULL
);
if
(
ost
->
img_resample_ctx
==
NULL
)
{
fprintf
(
stderr
,
"Cannot get resampling context
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Cannot get resampling context
\n
"
);
exit_program
(
1
);
}
}
...
...
@@ -1115,7 +1111,7 @@ static void do_video_resample(OutputStream *ost,
if
(
resample_changed
)
{
avfilter_graph_free
(
&
ost
->
graph
);
if
(
configure_video_filters
(
ist
,
ost
))
{
fprintf
(
stderr
,
"Error reinitializing filters!
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Error reinitializing filters!
\n
"
);
exit_program
(
1
);
}
}
...
...
@@ -1167,12 +1163,10 @@ static void do_video_out(AVFormatContext *s,
//fprintf(stderr, "vdelta:%f, ost->sync_opts:%"PRId64", ost->sync_ipts:%f nb_frames:%d\n", vdelta, ost->sync_opts, get_sync_ipts(ost), nb_frames);
if
(
nb_frames
==
0
){
++
nb_frames_drop
;
if
(
verbose
>
2
)
fprintf
(
stderr
,
"*** drop!
\n
"
);
av_log
(
NULL
,
AV_LOG_VERBOSE
,
"*** drop!
\n
"
);
}
else
if
(
nb_frames
>
1
)
{
nb_frames_dup
+=
nb_frames
-
1
;
if
(
verbose
>
2
)
fprintf
(
stderr
,
"*** %d dup!
\n
"
,
nb_frames
-
1
);
av_log
(
NULL
,
AV_LOG_VERBOSE
,
"*** %d dup!
\n
"
,
nb_frames
-
1
);
}
}
else
ost
->
sync_opts
=
lrintf
(
sync_ipts
);
...
...
@@ -1233,7 +1227,7 @@ static void do_video_out(AVFormatContext *s,
bit_buffer
,
bit_buffer_size
,
&
big_picture
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"Video encoding failed
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Video encoding failed
\n
"
);
exit_program
(
1
);
}
...
...
@@ -1398,31 +1392,28 @@ static void print_report(OutputFile *output_files,
if
(
ti1
<
0
.
01
)
ti1
=
0
.
01
;
if
(
verbose
>
0
||
is_last_report
)
{
bitrate
=
(
double
)(
total_size
*
8
)
/
ti1
/
1000
.
0
;
bitrate
=
(
double
)(
total_size
*
8
)
/
ti1
/
1000
.
0
;
snprintf
(
buf
+
strlen
(
buf
),
sizeof
(
buf
)
-
strlen
(
buf
),
snprintf
(
buf
+
strlen
(
buf
),
sizeof
(
buf
)
-
strlen
(
buf
),
"size=%8.0fkB time=%0.2f bitrate=%6.1fkbits/s"
,
(
double
)
total_size
/
1024
,
ti1
,
bitrate
);
if
(
nb_frames_dup
||
nb_frames_drop
)
snprintf
(
buf
+
strlen
(
buf
),
sizeof
(
buf
)
-
strlen
(
buf
),
" dup=%d drop=%d"
,
nb_frames_dup
,
nb_frames_drop
);
if
(
nb_frames_dup
||
nb_frames_drop
)
snprintf
(
buf
+
strlen
(
buf
),
sizeof
(
buf
)
-
strlen
(
buf
),
" dup=%d drop=%d"
,
nb_frames_dup
,
nb_frames_drop
);
if
(
verbose
>=
0
)
fprintf
(
stderr
,
"%s
\r
"
,
buf
);
av_log
(
NULL
,
is_last_report
?
AV_LOG_WARNING
:
AV_LOG_INFO
,
"%s
\r
"
,
buf
);
fflush
(
stderr
);
}
fflush
(
stderr
);
if
(
is_last_report
&&
verbose
>=
0
)
{
if
(
is_last_report
)
{
int64_t
raw
=
audio_size
+
video_size
+
extra_size
;
fprintf
(
stderr
,
"
\n
"
);
fprintf
(
stderr
,
"video:%1.0fkB audio:%1.0fkB global headers:%1.0fkB muxing overhead %f%%
\n
"
,
video_size
/
1024
.
0
,
audio_size
/
1024
.
0
,
extra_size
/
1024
.
0
,
100
.
0
*
(
total_size
-
raw
)
/
raw
av_log
(
NULL
,
AV_LOG_INFO
,
"
\n
"
);
av_log
(
NULL
,
AV_LOG_INFO
,
"video:%1.0fkB audio:%1.0fkB global headers:%1.0fkB muxing overhead %f%%
\n
"
,
video_size
/
1024
.
0
,
audio_size
/
1024
.
0
,
extra_size
/
1024
.
0
,
100
.
0
*
(
total_size
-
raw
)
/
raw
);
}
}
...
...
@@ -1486,7 +1477,7 @@ static void flush_encoders(OutputStream *ost_table, int nb_ostreams)
ret
=
avcodec_encode_audio
(
enc
,
bit_buffer
,
bit_buffer_size
,
NULL
);
}
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"Audio encoding failed
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Audio encoding failed
\n
"
);
exit_program
(
1
);
}
audio_size
+=
ret
;
...
...
@@ -1495,7 +1486,7 @@ static void flush_encoders(OutputStream *ost_table, int nb_ostreams)
case
AVMEDIA_TYPE_VIDEO
:
ret
=
avcodec_encode_video
(
enc
,
bit_buffer
,
bit_buffer_size
,
NULL
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"Video encoding failed
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Video encoding failed
\n
"
);
exit_program
(
1
);
}
video_size
+=
ret
;
...
...
@@ -1567,11 +1558,10 @@ static int output_packet(InputStream *ist, int ist_index,
handle_eof
:
ist
->
pts
=
ist
->
next_pts
;
if
(
avpkt
.
size
&&
avpkt
.
size
!=
pkt
->
size
&&
((
!
ist
->
showed_multi_packet_warning
&&
verbose
>
0
)
||
verbose
>
1
)){
fprintf
(
stderr
,
"Multiple frames in a packet from stream %d
\n
"
,
pkt
->
stream_index
);
if
(
avpkt
.
size
&&
avpkt
.
size
!=
pkt
->
size
)
av_log
(
NULL
,
ist
->
showed_multi_packet_warning
?
AV_LOG_VERBOSE
:
AV_LOG_WARNING
,
"Multiple frames in a packet from stream %d
\n
"
,
pkt
->
stream_index
);
ist
->
showed_multi_packet_warning
=
1
;
}
/* decode the packet if needed */
decoded_data_buf
=
NULL
;
/* fail safe */
...
...
@@ -1914,7 +1904,7 @@ static int transcode_init(OutputFile *output_files,
os
=
output_files
[
i
].
ctx
;
if
(
!
os
->
nb_streams
&&
!
(
os
->
oformat
->
flags
&
AVFMT_NOSTREAMS
))
{
av_dump_format
(
os
,
i
,
os
->
filename
,
1
);
fprintf
(
stderr
,
"Output file #%d does not contain any stream
\n
"
,
i
);
av_log
(
NULL
,
AV_LOG_ERROR
,
"Output file #%d does not contain any stream
\n
"
,
i
);
return
AVERROR
(
EINVAL
);
}
}
...
...
@@ -1969,7 +1959,7 @@ static int transcode_init(OutputFile *output_files,
switch
(
codec
->
codec_type
)
{
case
AVMEDIA_TYPE_AUDIO
:
if
(
audio_volume
!=
256
)
{
fprintf
(
stderr
,
"-acodec copy and -vol are incompatible (frames are not decoded)
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"-acodec copy and -vol are incompatible (frames are not decoded)
\n
"
);
exit_program
(
1
);
}
codec
->
channel_layout
=
icodec
->
channel_layout
;
...
...
@@ -2044,7 +2034,7 @@ static int transcode_init(OutputFile *output_files,
choose_pixel_fmt
(
ost
->
st
,
ost
->
enc
);
if
(
ost
->
st
->
codec
->
pix_fmt
==
PIX_FMT_NONE
)
{
fprintf
(
stderr
,
"Video pixel format is unknown, stream cannot be encoded
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Video pixel format is unknown, stream cannot be encoded
\n
"
);
exit_program
(
1
);
}
...
...
@@ -2061,7 +2051,7 @@ static int transcode_init(OutputFile *output_files,
avcodec_get_frame_defaults
(
&
ost
->
pict_tmp
);
if
(
avpicture_alloc
((
AVPicture
*
)
&
ost
->
pict_tmp
,
codec
->
pix_fmt
,
codec
->
width
,
codec
->
height
))
{
fprintf
(
stderr
,
"Cannot allocate temp picture, check pix fmt
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Cannot allocate temp picture, check pix fmt
\n
"
);
exit_program
(
1
);
}
ost
->
img_resample_ctx
=
sws_getContext
(
...
...
@@ -2073,7 +2063,7 @@ static int transcode_init(OutputFile *output_files,
codec
->
pix_fmt
,
ost
->
sws_flags
,
NULL
,
NULL
,
NULL
);
if
(
ost
->
img_resample_ctx
==
NULL
)
{
fprintf
(
stderr
,
"Cannot get resampling context
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Cannot get resampling context
\n
"
);
exit_program
(
1
);
}
#endif
...
...
@@ -2096,7 +2086,7 @@ static int transcode_init(OutputFile *output_files,
#if CONFIG_AVFILTER
if
(
configure_video_filters
(
ist
,
ost
))
{
fprintf
(
stderr
,
"Error opening filters!
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Error opening filters!
\n
"
);
exit
(
1
);
}
#endif
...
...
@@ -2121,7 +2111,8 @@ static int transcode_init(OutputFile *output_files,
if
(
codec
->
flags
&
CODEC_FLAG_PASS1
)
{
f
=
fopen
(
logfilename
,
"wb"
);
if
(
!
f
)
{
fprintf
(
stderr
,
"Cannot write log file '%s' for pass-1 encoding: %s
\n
"
,
logfilename
,
strerror
(
errno
));
av_log
(
NULL
,
AV_LOG_FATAL
,
"Cannot write log file '%s' for pass-1 encoding: %s
\n
"
,
logfilename
,
strerror
(
errno
));
exit_program
(
1
);
}
ost
->
logfile
=
f
;
...
...
@@ -2129,7 +2120,8 @@ static int transcode_init(OutputFile *output_files,
char
*
logbuffer
;
size_t
logbuffer_size
;
if
(
read_file
(
logfilename
,
&
logbuffer
,
&
logbuffer_size
)
<
0
)
{
fprintf
(
stderr
,
"Error reading log file '%s' for pass-2 encoding
\n
"
,
logfilename
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Error reading log file '%s' for pass-2 encoding
\n
"
,
logfilename
);
exit_program
(
1
);
}
codec
->
stats_in
=
logbuffer
;
...
...
@@ -2145,8 +2137,8 @@ static int transcode_init(OutputFile *output_files,
if
(
!
bit_buffer
)
bit_buffer
=
av_malloc
(
bit_buffer_size
);
if
(
!
bit_buffer
)
{
fprintf
(
stderr
,
"Cannot allocate %d bytes output buffer
\n
"
,
bit_buffer_size
);
av_log
(
NULL
,
AV_LOG_ERROR
,
"Cannot allocate %d bytes output buffer
\n
"
,
bit_buffer_size
);
return
AVERROR
(
ENOMEM
);
}
...
...
@@ -2232,31 +2224,29 @@ static int transcode_init(OutputFile *output_files,
}
/* dump the stream mapping */
if
(
verbose
>=
0
)
{
fprintf
(
stderr
,
"Stream mapping:
\n
"
);
for
(
i
=
0
;
i
<
nb_output_streams
;
i
++
)
{
ost
=
&
output_streams
[
i
];
fprintf
(
stderr
,
" Stream #%d.%d -> #%d.%d"
,
input_streams
[
ost
->
source_index
].
file_index
,
input_streams
[
ost
->
source_index
].
st
->
index
,
ost
->
file_index
,
ost
->
index
);
if
(
ost
->
sync_ist
!=
&
input_streams
[
ost
->
source_index
])
fprintf
(
stderr
,
" [sync #%d.%d]"
,
ost
->
sync_ist
->
file_index
,
ost
->
sync_ist
->
st
->
index
);
if
(
ost
->
st
->
stream_copy
)
fprintf
(
stderr
,
" (copy)"
);
else
fprintf
(
stderr
,
" (%s -> %s)"
,
input_streams
[
ost
->
source_index
].
dec
?
input_streams
[
ost
->
source_index
].
dec
->
name
:
"?"
,
ost
->
enc
?
ost
->
enc
->
name
:
"?"
);
fprintf
(
stderr
,
"
\n
"
);
}
av_log
(
NULL
,
AV_LOG_INFO
,
"Stream mapping:
\n
"
);
for
(
i
=
0
;
i
<
nb_output_streams
;
i
++
)
{
ost
=
&
output_streams
[
i
];
av_log
(
NULL
,
AV_LOG_INFO
,
" Stream #%d.%d -> #%d.%d"
,
input_streams
[
ost
->
source_index
].
file_index
,
input_streams
[
ost
->
source_index
].
st
->
index
,
ost
->
file_index
,
ost
->
index
);
if
(
ost
->
sync_ist
!=
&
input_streams
[
ost
->
source_index
])
av_log
(
NULL
,
AV_LOG_INFO
,
" [sync #%d.%d]"
,
ost
->
sync_ist
->
file_index
,
ost
->
sync_ist
->
st
->
index
);
if
(
ost
->
st
->
stream_copy
)
av_log
(
NULL
,
AV_LOG_INFO
,
" (copy)"
);
else
av_log
(
NULL
,
AV_LOG_INFO
,
" (%s -> %s)"
,
input_streams
[
ost
->
source_index
].
dec
?
input_streams
[
ost
->
source_index
].
dec
->
name
:
"?"
,
ost
->
enc
?
ost
->
enc
->
name
:
"?"
);
av_log
(
NULL
,
AV_LOG_INFO
,
"
\n
"
);
}
if
(
ret
)
{
fprintf
(
stderr
,
"%s
\n
"
,
error
);
av_log
(
NULL
,
AV_LOG_ERROR
,
"%s
\n
"
,
error
);
return
ret
;
}
...
...
@@ -2290,8 +2280,7 @@ static int transcode(OutputFile *output_files,
if
(
ret
<
0
)
goto
fail
;
if
(
verbose
>=
0
)
fprintf
(
stderr
,
"Press ctrl-c to stop encoding
\n
"
);
av_log
(
NULL
,
AV_LOG_INFO
,
"Press ctrl-c to stop encoding
\n
"
);
term_init
();
timer_start
=
av_gettime
();
...
...
@@ -2398,9 +2387,8 @@ static int transcode(OutputFile *output_files,
int64_t
delta
=
pkt_dts
-
ist
->
next_pts
;
if
((
FFABS
(
delta
)
>
1LL
*
dts_delta_threshold
*
AV_TIME_BASE
||
pkt_dts
+
1
<
ist
->
pts
)
&&
!
copy_ts
){
input_files
[
ist
->
file_index
].
ts_offset
-=
delta
;
if
(
verbose
>
2
)
fprintf
(
stderr
,
"timestamp discontinuity %"
PRId64
", new offset= %"
PRId64
"
\n
"
,
delta
,
input_files
[
ist
->
file_index
].
ts_offset
);
av_log
(
NULL
,
AV_LOG_DEBUG
,
"timestamp discontinuity %"
PRId64
", new offset= %"
PRId64
"
\n
"
,
delta
,
input_files
[
ist
->
file_index
].
ts_offset
);
pkt
.
dts
-=
av_rescale_q
(
delta
,
AV_TIME_BASE_Q
,
ist
->
st
->
time_base
);
if
(
pkt
.
pts
!=
AV_NOPTS_VALUE
)
pkt
.
pts
-=
av_rescale_q
(
delta
,
AV_TIME_BASE_Q
,
ist
->
st
->
time_base
);
...
...
@@ -2410,9 +2398,8 @@ static int transcode(OutputFile *output_files,
//fprintf(stderr,"read #%d.%d size=%d\n", ist->file_index, ist->st->index, pkt.size);
if
(
output_packet
(
ist
,
ist_index
,
output_streams
,
nb_output_streams
,
&
pkt
)
<
0
)
{
if
(
verbose
>=
0
)
fprintf
(
stderr
,
"Error while decoding stream #%d.%d
\n
"
,
ist
->
file_index
,
ist
->
st
->
index
);
av_log
(
NULL
,
AV_LOG_ERROR
,
"Error while decoding stream #%d.%d
\n
"
,
ist
->
file_index
,
ist
->
st
->
index
);
if
(
exit_on_error
)
exit_program
(
1
);
av_free_packet
(
&
pkt
);
...
...
@@ -2503,7 +2490,7 @@ static int transcode(OutputFile *output_files,
static
int
opt_verbose
(
const
char
*
opt
,
const
char
*
arg
)
{
verbose
=
parse_number_or_die
(
opt
,
arg
,
OPT_INT64
,
-
10
,
10
);
av_log
(
NULL
,
AV_LOG_WARNING
,
"-%s is deprecated, use -loglevel
\n
"
,
opt
);
return
0
;
}
...
...
@@ -2525,7 +2512,7 @@ static double parse_frame_aspect_ratio(const char *arg)
ar
=
strtod
(
arg
,
NULL
);
if
(
!
ar
)
{
fprintf
(
stderr
,
"Incorrect aspect ratio specification.
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Incorrect aspect ratio specification.
\n
"
);
exit_program
(
1
);
}
return
ar
;
...
...
@@ -2647,7 +2634,7 @@ static void parse_meta_type(char *arg, char *type, int *index)
*
index
=
strtol
(
++
arg
,
NULL
,
0
);
break
;
default
:
fprintf
(
stderr
,
"Invalid metadata type %c.
\n
"
,
*
arg
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Invalid metadata type %c.
\n
"
,
*
arg
);
exit_program
(
1
);
}
}
else
...
...
@@ -2769,11 +2756,9 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
if
(
dec
->
time_base
.
den
!=
rfps
*
dec
->
ticks_per_frame
||
dec
->
time_base
.
num
!=
rfps_base
)
{
if
(
verbose
>=
0
)
fprintf
(
stderr
,
"
\n
Seems stream %d codec frame rate differs from container frame rate: %2.2f (%d/%d) -> %2.2f (%d/%d)
\n
"
,
i
,
(
float
)
dec
->
time_base
.
den
/
dec
->
time_base
.
num
,
dec
->
time_base
.
den
,
dec
->
time_base
.
num
,
(
float
)
rfps
/
rfps_base
,
rfps
,
rfps_base
);
av_log
(
NULL
,
AV_LOG_INFO
,
"
\n
Seems stream %d codec frame rate differs from container frame rate: %2.2f (%d/%d) -> %2.2f (%d/%d)
\n
"
,
i
,
(
float
)
dec
->
time_base
.
den
/
dec
->
time_base
.
num
,
dec
->
time_base
.
den
,
dec
->
time_base
.
num
,
(
float
)
rfps
/
rfps_base
,
rfps
,
rfps_base
);
}
if
(
o
->
video_disable
)
...
...
@@ -2808,7 +2793,7 @@ static int opt_input_file(OptionsContext *o, const char *opt, const char *filena
if
(
o
->
format
)
{
if
(
!
(
file_iformat
=
av_find_input_format
(
o
->
format
)))
{
fprintf
(
stderr
,
"Unknown input format: '%s'
\n
"
,
o
->
format
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Unknown input format: '%s'
\n
"
,
o
->
format
);
exit_program
(
1
);
}
}
...
...
@@ -2863,8 +2848,8 @@ static int opt_input_file(OptionsContext *o, const char *opt, const char *filena
/* If not enough info to get the stream parameters, we decode the
first frames to get it. (used in mpeg case for example) */
ret
=
avformat_find_stream_info
(
ic
,
opts
);
if
(
ret
<
0
&&
verbose
>=
0
)
{
fprintf
(
stderr
,
"%s: could not find codec parameters
\n
"
,
filename
);
if
(
ret
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"%s: could not find codec parameters
\n
"
,
filename
);
av_close_input_file
(
ic
);
exit_program
(
1
);
}
...
...
@@ -2878,8 +2863,8 @@ static int opt_input_file(OptionsContext *o, const char *opt, const char *filena
if
(
o
->
start_time
!=
0
)
{
ret
=
av_seek_frame
(
ic
,
-
1
,
timestamp
,
AVSEEK_FLAG_BACKWARD
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"%s: could not seek to position %0.3f
\n
"
,
filename
,
(
double
)
timestamp
/
AV_TIME_BASE
);
av_log
(
NULL
,
AV_LOG_WARNING
,
"%s: could not seek to position %0.3f
\n
"
,
filename
,
(
double
)
timestamp
/
AV_TIME_BASE
);
}
}
...
...
@@ -2887,8 +2872,7 @@ static int opt_input_file(OptionsContext *o, const char *opt, const char *filena
add_input_streams
(
o
,
ic
);
/* dump the file content */
if
(
verbose
>=
0
)
av_dump_format
(
ic
,
nb_input_files
,
filename
,
0
);
av_dump_format
(
ic
,
nb_input_files
,
filename
,
0
);
input_files
=
grow_array
(
input_files
,
sizeof
(
*
input_files
),
&
nb_input_files
,
nb_input_files
+
1
);
input_files
[
nb_input_files
-
1
].
ctx
=
ic
;
...
...
@@ -3006,7 +2990,7 @@ static void parse_matrix_coeffs(uint16_t *dest, const char *str)
break
;
p
=
strchr
(
p
,
','
);
if
(
!
p
)
{
fprintf
(
stderr
,
"Syntax error in matrix
\"
%s
\"
at coeff %d
\n
"
,
str
,
i
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Syntax error in matrix
\"
%s
\"
at coeff %d
\n
"
,
str
,
i
);
exit_program
(
1
);
}
p
++
;
...
...
@@ -3079,7 +3063,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc)
int
start
,
end
,
q
;
int
e
=
sscanf
(
p
,
"%d,%d,%d"
,
&
start
,
&
end
,
&
q
);
if
(
e
!=
3
){
fprintf
(
stderr
,
"error parsing rc_override
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"error parsing rc_override
\n
"
);
exit_program
(
1
);
}
video_enc
->
rc_override
=
...
...
@@ -3175,7 +3159,7 @@ static OutputStream *new_data_stream(OptionsContext *o, AVFormatContext *oc)
st
=
ost
->
st
;
data_enc
=
st
->
codec
;
if
(
!
st
->
stream_copy
)
{
fprintf
(
stderr
,
"Data stream encoding not supported yet (only streamcopy)
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Data stream encoding not supported yet (only streamcopy)
\n
"
);
exit_program
(
1
);
}
...
...
@@ -3215,9 +3199,9 @@ static int opt_streamid(OptionsContext *o, const char *opt, const char *arg)
av_strlcpy
(
idx_str
,
arg
,
sizeof
(
idx_str
));
p
=
strchr
(
idx_str
,
':'
);
if
(
!
p
)
{
fprintf
(
stderr
,
"Invalid value '%s' for option '%s', required syntax is 'index:value'
\n
"
,
arg
,
opt
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Invalid value '%s' for option '%s', required syntax is 'index:value'
\n
"
,
arg
,
opt
);
exit_program
(
1
);
}
*
p
++
=
'\0'
;
...
...
@@ -3321,14 +3305,14 @@ static void opt_output_file(void *optctx, const char *filename)
if
(
o
->
format
)
{
file_oformat
=
av_guess_format
(
o
->
format
,
NULL
,
NULL
);
if
(
!
file_oformat
)
{
fprintf
(
stderr
,
"Requested output format '%s' is not a suitable output format
\n
"
,
o
->
format
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Requested output format '%s' is not a suitable output format
\n
"
,
o
->
format
);
exit_program
(
1
);
}
}
else
{
file_oformat
=
av_guess_format
(
NULL
,
filename
,
NULL
);
if
(
!
file_oformat
)
{
fprintf
(
stderr
,
"Unable to find a suitable output format for '%s'
\n
"
,
filename
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Unable to find a suitable output format for '%s'
\n
"
,
filename
);
exit_program
(
1
);
}
}
...
...
@@ -3748,14 +3732,14 @@ static int opt_target(OptionsContext *o, const char *opt, const char *arg)
break
;
}
}
if
(
verbose
>
0
&&
norm
!=
UNKNOWN
)
fprintf
(
stderr
,
"Assuming %s for target.
\n
"
,
norm
==
PAL
?
"PAL"
:
"NTSC"
);
if
(
norm
!=
UNKNOWN
)
av_log
(
NULL
,
AV_LOG_INFO
,
"Assuming %s for target.
\n
"
,
norm
==
PAL
?
"PAL"
:
"NTSC"
);
}
if
(
norm
==
UNKNOWN
)
{
fprintf
(
stderr
,
"Could not determine norm (PAL/NTSC/NTSC-Film) for target.
\n
"
);
fprintf
(
stderr
,
"Please prefix target with
\"
pal-
\"
,
\"
ntsc-
\"
or
\"
film-
\"
,
\n
"
);
fprintf
(
stderr
,
"or set a framerate with
\"
-r xxx
\"
.
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Could not determine norm (PAL/NTSC/NTSC-Film) for target.
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"Please prefix target with
\"
pal-
\"
,
\"
ntsc-
\"
or
\"
film-
\"
,
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"or set a framerate with
\"
-r xxx
\"
.
\n
"
);
exit_program
(
1
);
}
...
...
@@ -3842,7 +3826,7 @@ static int opt_target(OptionsContext *o, const char *opt, const char *arg)
parse_option
(
o
,
"ac"
,
"2"
,
options
);
}
else
{
fprintf
(
stderr
,
"Unknown target: %s
\n
"
,
arg
);
av_log
(
NULL
,
AV_LOG_ERROR
,
"Unknown target: %s
\n
"
,
arg
);
return
AVERROR
(
EINVAL
);
}
return
0
;
...
...
@@ -3929,7 +3913,7 @@ static const OptionDef options[] = {
{
"hex"
,
OPT_BOOL
|
OPT_EXPERT
,
{(
void
*
)
&
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"
,
""
},
{
"v"
,
HAS_ARG
,
{(
void
*
)
opt_verbose
},
"
set the verbosity level
"
,
"number"
},
{
"v"
,
HAS_ARG
,
{(
void
*
)
opt_verbose
},
"
deprecated, use -loglevel instead
"
,
"number"
},
{
"target"
,
HAS_ARG
|
OPT_FUNC2
,
{(
void
*
)
opt_target
},
"specify target file type (
\"
vcd
\"
,
\"
svcd
\"
,
\"
dvd
\"
,
\"
dv
\"
,
\"
dv50
\"
,
\"
pal-vcd
\"
,
\"
ntsc-svcd
\"
, ...)"
,
"type"
},
{
"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"
,
""
},
...
...
@@ -4039,7 +4023,7 @@ int main(int argc, char **argv)
if
(
nb_output_files
<=
0
&&
nb_input_files
==
0
)
{
show_usage
();
fprintf
(
stderr
,
"Use -h to get full help or, even better, run 'man %s'
\n
"
,
program_name
);
av_log
(
NULL
,
AV_LOG_WARNING
,
"Use -h to get full help or, even better, run 'man %s'
\n
"
,
program_name
);
exit_program
(
1
);
}
...
...
@@ -4050,7 +4034,7 @@ int main(int argc, char **argv)
}
if
(
nb_input_files
==
0
)
{
fprintf
(
stderr
,
"At least one input file must be specified
\n
"
);
av_log
(
NULL
,
AV_LOG_FATAL
,
"At least one input file must be specified
\n
"
);
exit_program
(
1
);
}
...
...
doc/avconv.texi
View file @
e3245b26
...
...
@@ -154,7 +154,8 @@ avconv -i INPUT -metadata:s:1 language=eng OUTPUT
@end example
@item -v @var
{
number
}
(@emph
{
global
}
)
Set the logging verbosity level.
This option is deprecated and has no effect, use -loglevel
to set verbosity level.
@item -target @var
{
type
}
(@emph
{
output
}
)
Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd",
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment