当前位置: 首页 > news >正文

凤凰网今日头条新闻小红书笔记关键词排名优化

凤凰网今日头条新闻,小红书笔记关键词排名优化,大连中山区网站建设,江苏苏州疫情最新消息这些函数是用于处理视频文件的Python代码片段,它们依赖于ffmpeg和ffprobe工具,这些工具是FFmpeg项目的一部分,用于处理视频和音频数据。下面是每个函数的用途和用法的总结: 1. ffmpeg_installed() 函数: - 用途&am…

这些函数是用于处理视频文件的Python代码片段,它们依赖于`ffmpeg`和`ffprobe`工具,这些工具是`FFmpeg`项目的一部分,用于处理视频和音频数据。下面是每个函数的用途和用法的总结:

1. `ffmpeg_installed()` 函数:
   - 用途:检查系统是否安装了`ffmpeg`工具。
   - 用法:调用此函数无需参数,它会返回一个布尔值,指示`ffmpeg`是否可用。

2. `video_is_playable(video_filepath: str)` 函数:
   - 用途:确定视频文件是否可以在浏览器中播放。
   - 用法:传入视频文件的路径作为字符串,函数会检查视频的容器格式和编解码器是否符合浏览器的播放标准(如`.mp4`容器使用`h264`编解码器,`.webm`容器使用`vp9`编解码器等)。如果视频符合标准,则返回`True`,否则返回`False`。

3. `convert_video_to_playable_mp4(video_path: str)` 函数:
   - 用途:将视频转换为浏览器可以播放的MP4格式。
   - 用法:传入视频文件的路径作为字符串,函数会尝试将视频转换为MP4格式。如果转换过程中出现错误,则返回原始视频路径。

4. `get_video_length(video_path: str | Path)` 函数:
   - 用途:获取视频文件的时长。
   - 用法:传入视频文件的路径,函数会使用`ffprobe`工具来获取视频的时长,并以秒为单位返回一个浮点数。

这些函数的实现依赖于外部命令行工具`ffmpeg`和`ffprobe`,因此在使用这些函数之前,需要确保这些工具已经正确安装在系统上。此外,代码中还包含了一些错误处理机制,以确保在处理视频文件时能够优雅地处理异常情况。例如,如果`ffmpeg`或`ffprobe`命令失败,或者视频文件的格式不符合预期,函数会返回原始视频路径或抛出异常。
IS_WASM = sys.platform == "emscripten"

def ffmpeg_installed() -> bool:
    if wasm_utils.IS_WASM:
        # TODO: Support ffmpeg in WASM
        return False

    return shutil.which("ffmpeg") is not None


def video_is_playable(video_filepath: str) -> bool:
    """Determines if a video is playable in the browser.

    A video is playable if it has a playable container and codec.
        .mp4 -> h264
        .webm -> vp9
        .ogg -> theora
    """
    from ffmpy import FFprobe, FFRuntimeError

    try:
        container = Path(video_filepath).suffix.lower()
        probe = FFprobe(
            global_options="-show_format -show_streams -select_streams v -print_format json",
            inputs={video_filepath: None},
        )
        output = probe.run(stderr=subprocess.PIPE, stdout=subprocess.PIPE)
        output = json.loads(output[0])
        video_codec = output["streams"][0]["codec_name"]
        return (container, video_codec) in [
            (".mp4", "h264"),
            (".ogg", "theora"),
            (".webm", "vp9"),
        ]
    # If anything goes wrong, assume the video can be played to not convert downstream
    except (FFRuntimeError, IndexError, KeyError):
        return True


def convert_video_to_playable_mp4(video_path: str) -> str:
    """Convert the video to mp4. If something goes wrong return the original video."""
    from ffmpy import FFmpeg, FFRuntimeError

    try:
        with tempfile.NamedTemporaryFile(delete=False) as tmp_file:
            output_path = Path(video_path).with_suffix(".mp4")
            shutil.copy2(video_path, tmp_file.name)
            # ffmpeg will automatically use h264 codec (playable in browser) when converting to mp4
            ff = FFmpeg(
                inputs={str(tmp_file.name): None},
                outputs={str(output_path): None},
                global_options="-y -loglevel quiet",
            )
            ff.run()
    except FFRuntimeError as e:
        print(f"Error converting video to browser-playable format {str(e)}")
        output_path = video_path
    finally:
        # Remove temp file
        os.remove(tmp_file.name)  # type: ignore
    return str(output_path)


def get_video_length(video_path: str | Path):
    if wasm_utils.IS_WASM:
        raise wasm_utils.WasmUnsupportedError(
            "Video duration is not supported in the Wasm mode."
        )
    duration = subprocess.check_output(
        [
            "ffprobe",
            "-i",
            str(video_path),
            "-show_entries",
            "format=duration",
            "-v",
            "quiet",
            "-of",
            "csv={}".format("p=0"),
        ]
    )
    duration_str = duration.decode("utf-8").strip()
    duration_float = float(duration_str)

    return duration_float

http://www.ds6.com.cn/news/74250.html

相关文章:

  • 做二手房网站广州seo代理
  • 西安北郊网站维护运营网络营销策划书1000字
  • 网站数据怎么做接口供小程序调用网络营销的目的是什么
  • 服务器安全狗西安seo专员
  • 模板网站 建设 方法推广seo是什么意思
  • 应用市场app下载安装谷歌seo服务公司
  • 展览展示设计必看网站seo推广优化多少钱
  • 沈阳做网站最好的公司有哪些如何制作付费视频网站
  • 微信定制开发 网站开发南宁最新消息今天
  • 毕设 代做 网站搜索词分析工具
  • 备案网站还是域名历史权重查询
  • 武汉网站推广技巧安徽搜索引擎优化seo
  • 网站建设陆金手指下拉贰拾新闻最近的新闻
  • 虚拟主机发布网站吗一级造价工程师
  • 做教案找资料有哪些网站个人在线网站推广
  • 高端网网站建设网推软件有哪些
  • 怎么用dw软件做网站今日最新抗疫数据
  • 网站免费云主机赣州网站seo
  • 免费空间能放网站吗社交网络推广方法有哪些
  • 网站用图片seo关键词排名如何
  • 网站seo是什么意网络推广入门教程
  • 郑州网站建设推广aso优化排名
  • 杭州模板网站制作宁波seo教程网
  • 个人介绍网站内容苏州seo营销
  • 网站制作 万网广告策划方案怎么做
  • 高明网站建设首选公司网站查询服务器
  • 0建设营销型网站步骤百度电话人工服务
  • 做个公司网站多少钱2023年12月疫情又开始了吗
  • 济南房地产网app下载重庆seo推广公司
  • 做网站怎么去进行链接网络seo培训