乐闻世界logo
搜索文章和话题

How to extract duration time from ffmpeg output?

1个答案

1

When working with FFmpeg to process media files, extracting the duration of videos or audio is a common requirement. FFmpeg offers multiple methods to retrieve media file information, including duration. The following provides a step-by-step guide and example demonstrating how to extract duration from FFmpeg output:

Step 1: Using ffprobe to Retrieve Media Information

The FFmpeg suite includes a tool named ffprobe specifically designed to retrieve media file information. We can use this tool to extract the file's duration. Run the following command:

bash
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4

This command consists of the following:

  • -v error: Only displays error messages, ignoring warnings and other information.
  • -show_entries format=duration: Instructs ffprobe to display the duration in the format information.
  • -of default=noprint_wrappers=1:nokey=1: Specifies the output format, making the output more concise.

Step 2: Interpreting the Output

After executing the above command, you will receive output similar to the following, where this number represents the duration of the video or audio (in seconds):

shell
123.456

This indicates that the media file's duration is approximately 123 seconds and 456 milliseconds.

Step 3: Using in Scripts

If you are developing an automated system, you may need to call the ffprobe command within a script and capture its output. The following is a simple Python script example to perform this task:

python
import subprocess def get_duration(filename): command = [ 'ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'default=noprint_wrappers=1:nokey=1', filename ] result = subprocess.run(command, stdout=subprocess.PIPE, text=True) return float(result.stdout.strip()) # Usage example duration = get_duration("input.mp4") print(f"The duration of the video is: {duration} seconds.")

This script defines a get_duration function that uses the subprocess module to run the ffprobe command and capture the output, then converts the output to a float and returns it.

Summary

By following these steps, you can accurately extract the duration of media files from FFmpeg output. This can be applied to various scenarios, such as video editing and automated video processing tasks.

2024年6月29日 12:07 回复

你的答案