首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何转换为m4v

如何转换为m4v
EN

Stack Overflow用户
提问于 2009-10-17 03:33:40
回答 2查看 1.3K关注 0票数 2

是通过脚本还是以编程方式?我有一堆文件需要转换,想知道有没有比一次只看一个提示符更好的方法

操作系统windows Vista/XP

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-17 06:42:16

假设您已经有一个可以转换为m4v的(具有命令行功能的)程序,并且您只希望能够自动执行该过程,下面是一个批处理文件,您可以修改它以循环遍历目录及其子目录中的所有文件,并调用您的转换程序。正如所写的,它使用手闸将.iso、.img或提取为VIDEO_TS格式的DVD转换为mp4,供XBox 360使用。它应该很容易改变。

只需将其保存为encode.bat或其他文件即可。

代码语言:javascript
复制
@echo off

rem Encode DVD for XBOX360 using Handbrake
rem Anything in %ENCODED_DIR% will not be encoded because everything in there
rem is assumed to have been encoded already.
rem
rem Encodes VIDEO_TS, iso, and img .. renames img to iso

SETLOCAL ENABLEDELAYEDEXPANSION

SET FILE_TYPES=VIDEO_TS *.iso *.img
SET ENCODED_DIR=[ENCODED]
SET CONVERT_PROG=[HANDBRAKE]\HandBrakeCLI.exe
SET CONVERT_ARG_INPUT=-i
SET CONVERT_ARG_OUTPUT=-o
SET CONVERT_ARG_SETTINGS=--longest --preset="Xbox 360" --native-language=eng --subtitle-scan

IF NOT EXIST "%ENCODED_DIR%" mkdir "%ENCODED_DIR%"

FOR /F "usebackq delims==" %%i IN (`dir %FILE_TYPES% /s /d /b ^| find /V "%ENCODED_DIR%"`) DO (
    rem trim the trailing slash and we have our output name minus the extension
    SET INPUT_FILENAME=%%i
    SET OUTPUT_FILENAME=%%~pi
    SET BASE_NAME=!OUTPUT_FILENAME:~0,-1!
    SET OUTPUT_FILENAME=!BASE_NAME!.mp4

    rem rename .img to .iso so Handbrake recognizes it as a proper input format
    IF /I "%%~xi"==".img" (
        SET INPUT_FILENAME=%%~pi%%~ni.iso
        ren "%%i" "%%~ni.iso"
    )

    start "Converting" /BELOWNORMAL /WAIT "%CONVERT_PROG%" %CONVERT_ARG_INPUT% "!INPUT_FILENAME!" %CONVERT_ARG_OUTPUT% "!OUTPUT_FILENAME!" %CONVERT_ARG_SETTINGS% 

    echo ERRORLEVEL AFTER CONVERT %ERRORLEVEL% >> last_errorlevel.txt 
)

ENDLOCAL

因此,您需要修改这些变量:

代码语言:javascript
复制
SET FILE_TYPES=VIDEO_TS *.iso *.img
SET ENCODED_DIR=[ENCODED]
SET CONVERT_PROG=[HANDBRAKE]\HandBrakeCLI.exe
SET CONVERT_ARG_INPUT=-i
SET CONVERT_ARG_OUTPUT=-o
SET CONVERT_ARG_SETTINGS=--longest --preset="Xbox 360" --native-language=eng --subtitle-

您希望将FILE_TYPES用作转换器程序的输入格式。ENCODED_DIR是一个您想要跳过的目录(您可以使用它来存储已编码的文件或将它们存储在其他地方)。CONVERT_PROG是转换器的目录。在本例中,我将其放在一个名为HANDBRAKE的子目录中,名为HandBrakeCLI.exe。***CONVERT_ARG_****是用来调用转换器程序的设置。

只需将想要转换的内容放在脚本之外的子目录中即可。例如,在不更改脚本的情况下,您将依赖于以下目录结构:

代码语言:javascript
复制
encode_stuff\encode.bat
encode_stuff\[ENCODED]\<stuff to skip>
encode_stuff\[HANDBRAKE]\HandBrakeCLI.exe
encode_stuff\dvd1\VIDEO_TS\<movie junk>
encode_stuff\dvd2\my_dvd2.iso

然后,当您运行该脚本时,它将创建dvd1.mp4和my_dvd2.mp4。

因此,基于对它如何工作的描述,希望您能弄清楚如何修改它,即使您不太了解使用批处理语言的cmd shell编程。如果这个答案不起作用,你应该更新原来的问题,包括你要从什么格式,你的目标是什么播放设备的m4v,以及你是否已经有一个程序,可以进行转换。

票数 1
EN

Stack Overflow用户

发布于 2009-10-17 14:08:11

对于编码到M4V,Handbrake是一个很好的实用程序。您甚至可以将其设置为以批处理模式运行。我曾经用这种方法编码了一整季的Lost。它可以通过命令行或GUI运行,但无论哪种方式,它都支持对文件进行批量编码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1581334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档