If you've ever worked with multimedia files, you've probably heard of ffmpeg, a powerful and versatile tool that can handle a wide range of multimedia formats. One of the many features of ffmpeg is its ability to provide detailed information about a video or audio file, including its format, codecs, bitrate, resolution, and more. This information is typically displayed in the console, which can be useful for troubleshooting, debugging, or simply for getting a better understanding of your media files.
By default, ffmpeg sends this information to the console (also known as the "standard error" or "stderr" output). However, you can also redirect this output to a file, or to another command or application that can process it further. In this article, we'll show you how to pipe the output of the ffmpeg showinfo option to the standard output (also known as "stdout"), which can be useful if you want to parse or analyze the data programmatically, or if you simply prefer to keep your console clean and uncluttered.
What is the ffmpeg showinfo option?
The ffmpeg showinfo option is a debugging tool that displays detailed information about a media file, including its format, codecs, duration, bitrate, resolution, and more. This option can be useful if you want to get a better understanding of a media file, or if you need to troubleshoot an issue with it.
To use the showinfo option, you simply need to add it to the ffmpeg command line, like this:
ffmpeg -i input.mp4 -f null - showinfo
In this example, we're using the -i option to specify the input file (in this case, input.mp4). The -f option is used to specify the output format, which in this case is null (since we're not actually producing any output, but just using the showinfo option to display information about the input file). The - symbol is used to indicate that the output should be sent to the standard output (i.e., the console).
When you run this command, you should see a lot of output, with one line for each frame or packet in the media file. Each line contains a timestamp, a packet type (such as AV_PKT_DATA_AUDIO or AV_PKT_DATA_VIDEO), a stream index, a packet size, and a set of key-value pairs that provide detailed information about the packet. Here's an example of what the output might look like:
[Parsed_showinfo_0 @ 0x7f8878000200] media_type=video
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=0
[Parsed_showinfo_0 @ 0x7f8878000200] pts=0
[Parsed_showinfo_0 @ 0x7f8878000200] pts_time=0
[Parsed_showinfo_0 @ 0x7f8878000200] dts=0
[Parsed_showinfo_0 @ 0x7f8878000200] dts_time=0
[Parsed_showinfo_0 @ 0x7f8878000200] duration=3666667
[Parsed_showinfo_0 @ 0x7f8878000200] duration_time=3.666667
[Parsed_showinfo_0 @ 0x7f8878000200] bit_rate=233661
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=100
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=100
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=100
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=101
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=h264
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[Parsed_showinfo_0 @ 0x7f8878000200] profile=High
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=video
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] width=1920
[Parsed_showinfo_0 @ 0x7f8878000200] height=1080
[Parsed_showinfo_0 @ 0x7f8878000200] has_b_frames=1
[Parsed_showinfo_0 @ 0x7f8878000200] sample_aspect_ratio=1:1
[Parsed_showinfo_0 @ 0x7f8878000200] display_aspect_ratio=16:9
[Parsed_showinfo_0 @ 0x7f8878000200] pix_fmt=yuv420p
[Parsed_showinfo_0 @ 0x7f8878000200] level=40
[Parsed_showinfo_0 @ 0x7f8878000200] color_range=tv
[Parsed_showinfo_0 @ 0x7f8878000200] color_space=bt709
[Parsed_showinfo_0 @ 0x7f8878000200] color_transfer=bt709
[Parsed_showinfo_0 @ 0x7f8878000200] chroma_location=left
[Parsed_showinfo_0 @ 0x7f8878000200] refs=1
[Parsed_showinfo_0 @ 0x7f8878000200] is_avc=1
[Parsed_showinfo_0 @ 0x7f8878000200] nal_length_size=4
[Parsed_showinfo_0 @ 0x7f8878000200] id=N/A
[Parsed_showinfo_0 @ 0x7f8878000200] r_frame_rate=25/1
[Parsed_showinfo_0 @ 0x7f8878000200] avg_frame_rate=25/1
[Parsed_showinfo_0 @ 0x7f8878000200] time_base=1/1000
[Parsed_showinfo_0 @ 0x7f8878000200] start_time=0.000000
[Parsed_showinfo_0 @ 0x7f8878000200] duration=3666.666667
[Parsed_showinfo_0 @ 0x7f8878000200] bit_rate=233661
[Parsed_showinfo_0 @ 0x7f8878000200] max_bit_rate=N/A
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_raw_sample=8
[Parsed_showinfo_0 @ 0x7f8878000200] nb_streams=1
[Parsed_showinfo_0 @ 0x7f8878000200] nb_programs=0
[Parsed_showinfo_0 @ 0x7f8878000200] format=avc
[Parsed_showinfo_0 @ 0x7f8878000200] format_version=1
[Parsed_showinfo_0 @ 0x7f8878000200] [email protected]
[Parsed_showinfo_0 @ 0x7f8878000200] format_settings=N/A
[Parsed_showinfo_0 @ 0x7f8878000200] format_tags=N/A
[Parsed_showinfo_0 @ 0x7f8878000200] format_long_name=AVC (Advanced Video Coding)
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=0
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] stream_index=1
[Parsed_showinfo_0 @ 0x7f8878000200] codec_name=opus
[Parsed_showinfo_0 @ 0x7f8878000200] codec_long_name=Opus
[Parsed_showinfo_0 @ 0x7f8878000200] profile=2
[Parsed_showinfo_0 @ 0x7f8878000200] codec_type=audio
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000
[Parsed_showinfo_0 @ 0x7f8878000200] sample_rate=48000
[Parsed_showinfo_0 @ 0x7f8878000200] channels=2
[Parsed_showinfo_0 @ 0x7f8878000200] channel_layout=stereo
[Parsed_showinfo_0 @ 0x7f8878000200] bits_per_sample=0
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_frames_ Lub=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_frames=1871
[Parsed_showinfo_0 @ 0x7f8878000200] nb_read_packets=1871
[Parsed_showinfo_0 @ 0x7f8878000200] codec_time_base=1/48000
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag_string=[0][0][0][0]
[Parsed_showinfo_0 @ 0x7f8878000200] codec_tag=0x0000