2017-12-22 48 views
0

내가 가지고있는 folowing 형식으로 이름에 타임 스탬프를 가지고 프레임을 가득 폴더는 FFmpeg와 타임 스탬프를 사용하여 이름 프레임에서 비디오를 만드는 방법

im_ % H_ % M_ % S_ % MS.png

im_08_05_09_007324.png 
im_08_05_09_532857.png 
im_08_05_10_059340.png 
im_08_05_10_575862.png 
im_08_05_11_118361.png 
im_08_05_11_596814.png 
im_08_05_12_148340.png 
im_08_05_12_665838.png 

나는 창에서 -pattern_type glob을 사용하려고하지만 그것은 작동하지 않습니다.

ffmpeg.exe -framerate 10 -pattern_type glob -i im_*.png -c:v libx264 -r 30 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -pix_fmt yuv420p $videoName 

나는

Pattern type 'glob' was selected but globbing is not supported by this libavformat build im_*.png: Function not implemented 

나중에 나는 이것이 내가 사용하고 무엇을하는 :(창에서 작동하지 않는 것을 발견 얻을. ffmpeg Error: Pattern type 'glob' was selected but globbing is not support ed by this libavformat build

나는 또한 시도

ffmpeg.exe -framerate 10 -pattern_type glob -i im_%02d_%02d_%02d_%06d.png -c:v libx264 -r 30 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -pix_fmt yuv420p $videoName 

알겠습니다.

im_%02d_%02d_%02d_%06d.png: No such file or directory 

아이디어가 부족합니다. 나는 ffmpeg와 powershell에서 이것을 할 수있는 방법이 없다고 믿지 않는다. 정말 도움을 주셔서 감사합니다!

답변

0

당신은 순서

file im_08_05_09_007324.png 
file im_08_05_09_532857.png 
file im_08_05_10_059340.png 
file im_08_05_10_575862.png 
file im_08_05_11_118361.png 

을 파일 이름의 목록이 포함 된 텍스트 파일을 만듭니다 CONCAT 디멀티플렉서

을 통해 해결 방법을 사용하고

ffmpeg -f concat -r 10 -i list.txt -c:v libx264 ... 

를 실행할 수 있습니다 (이 생산됩니다 유효하지 않은 DTS에 대한 경고는 무시할 수 있습니다.)

+0

대단히 감사합니다! 나의 늦은 대답에 대해 유감스럽게 생각합니다.나는 그날 서둘러 피지 imageJ로 비디오를 제작하기로 결정했습니다. 그러나 이제 많은 비디오를 만들어야하므로 스크립트를 만들어야 할 필요성을 발견했습니다. 귀하의 답을 바탕으로 구축 저는 제 전체 해결책을 썼습니다. – CaribeGirl

0

Mulv 나중에 솔루션 나는 제안 된 형식으로 파일 이름과 TXT를 생성합니다 powershell 스크립트를 썼습니다. 기본값은 UTF-8-BOM하고 ffmpeg 그것을 좋아하지 않기 때문에

$inFolder = "C:\my_folder_with_Png_frames\" 
$inSearch = $inFolder+"*.png" 
$outFile = $inFolder + "framenames.txt" 
Get-childitem -path $inSearch -recurse -name | Out-File $outFile -Encoding ASCII 
내가 아웃 - 파일 cmdlet의 Encoding 추가 디렉토리 PNG로 내용으로 txt 파일을 만듭니다.

  1. txt 파일의 각 줄에 "file"문자열을 미리 추가하십시오.

    $prependVar = "file " 
    $lines  = get-content $outFile 
    $newlines = $lines | ForEach-Object{ "$prependVar$_"} 
    $newlines | Out-File $outFile -Encoding ASCII 
    
  2. 전화 FFMPEG

    cd $inFolder 
    C:/ffmpeg/bin.\ffmpeg.exe -f concat -r 10 -i $outFile -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 
    

단계 1.

및 2. fullpath에 이름이있는 txt 파일을 생성하지 않습니다. 이름 만. 이것이 우리가 cd 폴더에 필요한 이유입니다.