首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视频编码的批重命名/重命名

视频编码的批重命名/重命名
EN

Stack Overflow用户
提问于 2014-10-05 02:48:45
回答 2查看 2.5K关注 0票数 0

我需要帮助重命名一些文件使用bat文件。我试着用cmd对视频进行批量编码,就像这样

  1. 读取文件名,然后将其保存到文本文件(file_read.txt)中。
  2. 将这些文件重命名为简单名称、1.mp4、2.mp4等,直到所有文件重命名(xxx.mp4)为止。即使它们是wmv/mov/avi,我通常只是重命名为mp4,不知道它是否坏。
  3. 2.对重命名的文件进行编码。这是我要编码的代码

\exe\x 264_ 32 _tMod- 10位-所有-级别5.1 -预置非常慢-crf 23.0 -min-keyint 12 -场景45 -b-适应2-参考文献10 -权重2-qcomp 0.6 -rc-展望前40 -直接自动-aq-模式3-aq-强度0.9 -混合32-我的umh -下10-格子2-psy- 0.40:0.60 -acodec无-无-stylish --输出.\temp\Output_v.mp4 .\Input\xxx.mp4 .\exe\ffmpeg -y -i .\Input\xxx.mp4 -f wav -| .\exe\neroAacEnc -ignorelength -q 0.4 -if - -of .\temp\Output_a.aac .\exe\ffmpeg -y -i .\Input\xxx.mp4 -i .\temp\Output_v.mp4 -map 1 -map_metadata 0 -c复制.\temp\newmetadatavideo.mp4 .\exe\ffmpeg -y -i .\temp\newmetadatavideo.mp4 -i .\temp\Output_a.aac -vcodec复制-acodec copy .\Output\yyy.mp4

在这里,输入文件是xxx.mp4,yyy.mp4是输出

  1. 将yyy.mp4文件重命名为file_read.txt。扩展将是mp4 (因为我将它们编码为mp4)

我使用子文件夹来区分输入输出-exe文件和其他东西,所以它们实际上都不在一个文件夹中。像这样

  • 根(我把bat文件放在这里)
    • exe (x264,ffmpeg,nero都在这里)
    • 输入(我把所有的视频放在那里)
    • 输出(已完成的视频)
    • temp (我把视音频和file_read.txt放在这里)

谢谢!

使用此代码的输出文件大约要小2-5倍(至少对我来说是这样),但是由于我使用了10位和5.1级,所以并非所有玩家都能玩(没有尝试过)

EN

回答 2

Stack Overflow用户

发布于 2014-10-05 04:35:42

这段代码应该消除了重命名文件的需要。

更改第2行,以便显示正确的输入文件类型和FWIW在.\中不需要引用当前目录中的文件或文件夹。

首先在一些示例文件上测试它--命令行与您的代码相同,只更改了输入和输出项。

编辑:最后一个命令是".\Output\%%~na.mp4“而不是".\Output\%%~nxa"

,因此它将将所有最终输出文件保存为.mp4

代码语言:javascript
复制
@echo off
for %%a in ("input\*.mpg" "input\*.mkv" "input\*.avi") do (
    .\exe\x264_32_tMod-10bit-all --level 5.1 --preset veryslow --crf 23.0 --min-keyint 12 --scenecut 45 --bframes 8 --b-adapt 2 --ref 10 --weightp 2 --qcomp 0.6 --rc-lookahead 40 --direct auto --aq-mode 3 --aq-strength 0.9 --merange 32 --me umh --subme 10 --trellis 2 --psy-rd 0.40:0.60 --acodec none --stylish --output ".\temp\Output_v_%%~nxa" ".\Input\%%~nxa"
    .\exe\ffmpeg -y -i ".\Input\%%~nxa" -f wav -| .\exe\neroAacEnc -ignorelength -q 0.4 -if - -of ".\temp\Output_a_%%~nxa.aac"
    .\exe\ffmpeg -y -i ".\Input\%%~nxa" -i ".\temp\Output_v_%%~nxa" -map 1 -map_metadata 0 -c copy ".\temp\new_%%~nxa"
    .\exe\ffmpeg -y -i ".\temp\new_%%~nxa" -i ".\temp\Output_a_%%~nxa.aac" -vcodec copy -acodec copy ".\Output\%%~na.mp4"
)
pause

如果临时文件正常的话,可以添加一些额外的代码来删除它。

票数 0
EN

Stack Overflow用户

发布于 2014-10-06 04:04:24

我已经编辑了一些代码

代码语言:javascript
复制
@echo off
for %%a in ("input\*.mpg" "input\*.mkv" "input\*.avi" "input\*.mov" "input\*.mp4" "input\*.m4v") do (
.\exe\x264_32_tMod-10bit-all --level 5.1 --preset veryslow --crf 23.0 --min-keyint 12 --scenecut 45 --bframes 8 --b-adapt 2 --ref 10 --weightp 2 --qcomp 0.6 --rc-lookahead 40 --direct auto --aq-mode 3 --aq-strength 0.9 --merange 32 --me umh --subme 10 --trellis 2 --psy-rd 0.40:0.60 --acodec none --stylish --output ".\temp\Output_v.mp4" ".\Input\%%~nxa"
.\exe\ffmpeg -y -i ".\Input\%%~nxa" -f wav -| .\exe\neroAacEnc -ignorelength -q 0.4 -if - -of ".\temp\Output_a.aac"
.\exe\ffmpeg -y -i ".\Input\%%~nxa" -i ".\temp\Output_v.mp4" -map 1 -map_metadata 0 -c copy ".\temp\meta_video.mp4"
.\exe\ffmpeg -y -i ".\temp\meta_video.mp4" -i ".\temp\Output_a.aac" -vcodec copy -acodec copy ".\Output\%%~na.mp4"
)
pause

不需要删除临时文件,包括一些其他视频类型并自动生成MP4文件

它终于完成了,现在!

谢谢你帮我

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

https://stackoverflow.com/questions/26199165

复制
相关文章

相似问题

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