AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 8021
Accepted
knorv
knorv
Asked: 2010-10-18 13:41:21 +0800 CST2010-10-18 13:41:21 +0800 CST 2010-10-18 13:41:21 +0800 CST

将任意文件格式的视频文件转换为 MPEG4/H.264?

  • 772

我想将大量各种格式的视频文件转换成.mp4文件(容器MPEG-4,编解码器H.264)。我想在 Ubuntu 机器上执行此操作,仅使用命令行工具,并且我愿意从main、restricted和.universemultiverse

理想情况下,我希望能够做到...

for VIDEO_FILE in *; do
  some_conversion_program $VIDEO_FILE $VIDEO_FILE.mp4
done

...并让我所有的视频文件都.mp4采用容器 MPEG-4 和编解码器 H.264 格式。

你将如何在 Ubuntu 机器上解决这个问题?我需要安装哪些软件包?

software-recommendation video conversion codecs
  • 2 2 个回答
  • 2332 Views

2 个回答

  • Voted
  1. Best Answer
    Nyamiou The Galeanthrope
    2010-10-18T14:02:39+08:002010-10-18T14:02:39+08:00

    您将需要安装这些:

    sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-51 libswsclale-unstripped-0 x264
    

    在 Karmic、Lucid 和 Maverick 中,您应该将“unstripped”替换为“extra”,但由于有过渡包,这也可以。

    然后你可以使用一个脚本:

    for i in *.avi; do ffmpeg -i "$i" -f mp4 "`basename "$i" .avi`.mp4";done
    

    您可以使用这些选项来设置分辨率、视频编解码器和音频编解码器以及音频质量:

    for i in *.avi; do ffmpeg -i "$i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "`basename "$i" .avi`.mp4";done
    
    • 7
  2. Elder Geek
    2016-02-04T15:00:27+08:002016-02-04T15:00:27+08:00

    对于 Ubuntu 14.04 和更新版本

    您将需要来自 libav-tools 和 ubuntu-restricted-extras 的 avconv。如果您还没有它们,您可以使用以下命令安装它们:

    sudo apt-get install libav-tools ubuntu-restricted-extras

    这个脚本应该可以解决问题,但假设是相关文件夹中只有视频文件,否则可能会出现意想不到的后果。

    #!/bin/bash
    echo "This script will attempt to encode by re-encoding the video stream and copying the audio stream placing all files in the current directory into a mp4 video container of the same name as the sources. The new filename will be derived from a basename (everything before the source file last '.') and an extension (everything after the source file last '.'). Target names will be 'basename'.mp4. Sources matching the target name will be renamed with a .bak extension prior to processing for safety. a CRF of 25 is harcoded in by preference but feel free to adjust as you desire."
    echo 
    echo "You must choose the preset of your choice with a tradeoff of speed vs. quality"
    echo  "(veryfast recommended for decent speed and decent quality)"
    echo "type  a preset and press enter or bail and enter to quit now. Preset choices are:"
    echo "ultrafast superfast veryfast faster fast medium slow slower slowest"
    read preset
    echo "you chose $preset"
    if [ "$preset" != "bail" ]
    then
    for f in *.* 
        do
        name=$(echo "$f" | sed 's/\.[^\.]*$//')
        ext=$(echo "$f" | sed 's/^.*\.//')
        target="$name.mp4"
        echo target = $target
            if  [ "$f" = "$target" ];
            then
                echo "$f=$target so moving source to backup file"
                mv "$f" "$f.bak";
                if [ "$?" != "0" ]; then echo "error renaming $f" && exit
                fi 
                avconv -i "$f.bak" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target"
                if [ "$?" != "0" ]; then echo "error processing $f.bak" && exit
                fi 
            else 
                avconv -i "$f" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target"
                if [ "$?" != "0" ]; then echo "error processing $f" && exit
                fi 
            fi
        done
    fi
    
    • 0

相关问题

  • 如何播放加密的 DVD 电影?

  • 从 Ubuntu 连接到 Windows 的最佳远程桌面工具是什么?[关闭]

  • 帮助让 Flash 播放器在第二个屏幕上工作?

  • 是否有 Paint.NET 替代方案?

  • Ubuntu 和交互式媒体安装

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve