mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-13 11:24:00 +08:00
Check ffmpeg before rendering video (#715)
* check ffmpeg before rendering video * Fix imports
This commit is contained in:
1 parent
ec23b402a5
commit
9252a46273
3 files changed
+47
-22
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# Copyright 2022 The Nerfstudio Team. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""Helpers for checking if programs are installed"""
|
||||
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
from rich.console import Console
|
||||
|
||||
console = Console(width=120)
|
||||
|
||||
|
||||
def check_ffmpeg_installed():
|
||||
"""Checks if ffmpeg is installed."""
|
||||
ffmpeg_path = shutil.which("ffmpeg")
|
||||
if ffmpeg_path is None:
|
||||
console.print("[bold red]Could not find ffmpeg. Please install ffmpeg.")
|
||||
print("See https://ffmpeg.org/download.html for installation instructions.")
|
||||
print("ffmpeg is only necessary if using videos as input.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def check_colmap_installed():
|
||||
"""Checks if colmap is installed."""
|
||||
colmap_path = shutil.which("colmap")
|
||||
if colmap_path is None:
|
||||
console.print("[bold red]Could not find COLMAP. Please install COLMAP.")
|
||||
print("See https://colmap.github.io/install.html for installation instructions.")
|
||||
sys.exit(1)
|
||||
+3
-22
@@ -16,7 +16,7 @@ import tyro
|
||||
from rich.console import Console
|
||||
from rich.progress import track
|
||||
|
||||
from nerfstudio.utils import colmap_utils
|
||||
from nerfstudio.utils import colmap_utils, install_checks
|
||||
|
||||
CONSOLE = Console(width=120)
|
||||
|
||||
@@ -34,25 +34,6 @@ CAMERA_MODELS = {
|
||||
}
|
||||
|
||||
|
||||
def check_ffmpeg_installed():
|
||||
"""Checks if ffmpeg is installed."""
|
||||
ffmpeg_path = shutil.which("ffmpeg")
|
||||
if ffmpeg_path is None:
|
||||
CONSOLE.print("[bold red]Could not find ffmpeg. Please install ffmpeg.")
|
||||
print("See https://ffmpeg.org/download.html for installation instructions.")
|
||||
print("ffmpeg is only necissary if using videos as input.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def check_colmap_installed():
|
||||
"""Checks if colmap is installed."""
|
||||
colmap_path = shutil.which("colmap")
|
||||
if colmap_path is None:
|
||||
CONSOLE.print("[bold red]Could not find COLMAP. Please install COLMAP.")
|
||||
print("See https://colmap.github.io/install.html for installation instructions.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def get_colmap_version(default_version=3.8) -> float:
|
||||
"""Returns the version of COLMAP.
|
||||
This code assumes that colmap returns a version string of the form
|
||||
@@ -408,8 +389,8 @@ def main(
|
||||
verbose: If True, print extra logging.
|
||||
"""
|
||||
|
||||
check_ffmpeg_installed()
|
||||
check_colmap_installed()
|
||||
install_checks.check_ffmpeg_installed()
|
||||
install_checks.check_colmap_installed()
|
||||
|
||||
output_dir.mkdir(parents=True, exist_ok=True)
|
||||
image_dir = output_dir / "images"
|
||||
|
||||
@@ -28,6 +28,7 @@ from nerfstudio.cameras.camera_paths import get_path_from_json, get_spiral_path
|
||||
from nerfstudio.cameras.cameras import Cameras
|
||||
from nerfstudio.configs.base_config import Config # pylint: disable=unused-import
|
||||
from nerfstudio.pipelines.base_pipeline import Pipeline
|
||||
from nerfstudio.utils import install_checks
|
||||
from nerfstudio.utils.eval_utils import eval_setup
|
||||
from nerfstudio.utils.rich_utils import ItersPerSecColumn
|
||||
|
||||
@@ -116,6 +117,8 @@ class RenderTrajectory:
|
||||
eval_num_rays_per_chunk=self.eval_num_rays_per_chunk,
|
||||
)
|
||||
|
||||
install_checks.check_ffmpeg_installed()
|
||||
|
||||
seconds = self.seconds
|
||||
|
||||
# TODO(ethan): use camera information from parsing args
|
||||
|
||||
Reference in new issue
Block a user