CMD 사용: 폴더에 있는 모든 Mp4를 나열하고 해당 기간을 나열합니다.

CMD 사용: 폴더에 있는 모든 Mp4를 나열하고 해당 기간을 나열합니다.

현재 다음 코드를 사용하여 file.CSV모든 .mp4 제목 목록이 포함된 파일을 만들고 있습니다.

dir /s /b *.mp4 > listmp4.csv

내 목록에 각 동영상의 재생 시간을 포함하고 싶습니다.
내 명령줄은 무엇이어야 합니까?

CSV에도 다음 숫자가 필요합니다.

여기에 이미지 설명을 입력하세요

답변1

AFAIK, CMD는 WScript 스크립팅을 사용하지 않고 다음과 같은 메타데이터 속성을 가져올 수 있는 방법이 없습니다.지속,작곡가, 또는비트 전송률. 하지만,파워셸시설을 제공합니다그 정보를 수집하기 위해.

다음 스크립트가 조정되었습니다.StackOverflow에서, 실행파워셸, 폴더를 재귀적으로 검색하고 파이프합니다.폴더,파일 이름그리고지속CSV로.

$Directory = "E:\Audio Files\_.mp3\Albeniz, Isaac"
$Shell = New-Object -ComObject Shell.Application
Get-ChildItem -Path $Directory -Recurse -Force | ForEach 
{
    $Folder = $Shell.Namespace($_.DirectoryName)
    $File = $Folder.ParseName($_.Name)
    $Duration = $Folder.GetDetailsOf($File, 27)
    [PSCustomObject]@{
        Folder = $_.DirectoryName
        Name = $_.Name
        Duration = $Duration}} | Export-Csv -Path "C:/temp/out.csv" -NoTypeInformation

아래에 표시된 CSV가 생성됩니다.

LibreOffice Calc에 표시되는 CSV

필요에 따라 파일 위치에 맞게 스크립트를 수정하고 메타데이터를 표시하거나 숨깁니다.

답변2

사용ffprobe.exe(FFmpeg)나열하려는 파일이 있는 폴더 내부의 루프에서

@echo off 

cd /d "D:\Path\To\mp4\Videos\Folder\"
set "_ffprobe=C:\Program Files\FFmpeg\Bin\ffprobe.exe"
for /R %%I in (*.mp4)do @for /f eol^=^|delims^=. %%i  in ('
@"%_ffprobe%" -i "%%~fI" -show_entries format^=duration -v quiet ^
-of csv^="p=0" -sexagesimal^|findstr/e .[0-9]')do echo\"%%~nxI",'0%%~i>>".\file.csv"

관련 정보