Plots.jl에서 동영상을 출력하려면 ffmpeg 또는 imagemagick이 필요합니다.
7069 단어 JuliaImageMagickffmpeg
문제
using Plots
gr()
x = linspace(0, 2π,50)
anim = @animate for i in x[2:end]
plot(x, [sin.(x - i),cos.(x-i)],seriestype=:scatter)
end
gif(anim,"/tmp/三角関数.gif",fps=15)
위의 코드를 실행했을 때 다음과 같은 오류가 발생했습니다.
could not spawn `ffmpeg -v 0 -i 'C:\Users\(사용자 이름)\AppData\Local\Temp\jl_5421.tmp/%06d.png' -vf palettegen=stats_mode=diff -y 'C:\Users\(사용자 이름)\AppData\Local\Temp\jl_5421.tmp/palette.bmp'': no such file or directory (ENOENT)
ffmpeg 소개
아무래도 동영상 작성에는 ffmpeg라고 하는 것이 필요하다. 거기서
1. ffmpeg 페이지에서 ffmpeg-4.0.tar.bz2를 다운로드하고 압축을 풉니다.
2. 압축을 푼 폴더의 이름을 ffmpeg로 바꾸어 C:\Program Files로 이동시켰다.
3. 시스템 환경 변수의 Path를 편집, 값 C:\Program Files\ffmpeg\bin을 신규 추가했다.
ffmpeg 추가 후 다시 같은 코드를 실행하면 다음과 같은 오류가 발생했습니다.
failed process: Process(`ffmpeg -v 0 -framerate 2 -loop 0 -i 'C:\Users\(사용자 이름)\AppData\Local\Temp\jl_B822.tmp/%06d.png' -i 'C:\Users\(사용자 이름)\AppData\Local\Temp\jl_B822.tmp/palette.bmp' -lavfi paletteuse=dither=sierra2_4a -y '\tmp\삼각 함수.gif'`, ProcessExited(1)) [1]
패키지 업데이트
이 에러 메시지를 조사한 결과 비슷한 곳에서는 빠져있는 것이 계셨습니다.
htps : // 기주 b. 코 m/쥬아아 Pぉts/P㎉ts. jl/이스에 s/1239
이 방법은 Plots.jl/animation.jl의 png 인코더 버그가이 오류의 원인 인 것입니다. 고맙게도 이 분은 수정안을 제출, 제출안은 병합되고 있습니다 . 라고 하는 것은, 최신 버젼의 Plots.jl에 업데이트하면 되는 것이 아닐까 생각했습니다.
julia>Pkg.update()
(전략)
INFO: Upgrading BinDeps: v0.8.7 => v0.8.8
(중략)
INFO: Upgrading GR: v0.26.0 => v0.31.0
(중략)
INFO: Upgrading IJulia: v1.7.0 => v1.8.0
(중략)
INFO: Upgrading Plots: v0.15.0 => v0.17.0
(후략)
하지만 역시 같은 오류가 나왔습니다.
failed process: Process(`ffmpeg -v 0 -framerate 2 -loop 0 -i 'C:\Users\(사용자 이름)\AppData\Local\Temp\jl_CF8A.tmp/%06d.png' -i 'C:\Users\(사용자 이름)\AppData\Local\Temp\jl_CF8A.tmp/palette.bmp' -lavfi paletteuse=dither=sierra2_4a -y '\tmp\삼각 함수.gif'`, ProcessExited(1)) [1]
출력 대상 수정
작업하고 있는 노트북의 저장처에 tmp 폴더를 신규 작성해, 출력 디렉토리를 "/tmp/삼각함수.gif"에서 "tmp/삼각함수.gif"로 바꾸면 잘 되었습니다.
using Plots
gr()
x = linspace(0,2π,50)
anim = @animate for i in x[2:end]
plot(x,[sin.(x-i),cos.(x-i)],seriestype=:scatter)
end
gif(anim, "tmp/三角関数.gif", fps = 15) #"/tmp/三角関数.gif"->"tmp/三角関数.gif"
되돌아 보면 failed process 오류가 출력 디렉토리 이름을 올바르게 작성하지 않았기 때문에 Plots.jl 버그가 관련이 없었을 수 있습니다.
그렇다면 ffmpeg를 설치하고 Path를 통한 단계에서 성공적으로 GIF 동영상을 출력할 수 있을지도 모릅니다.
이 문제를 쓰려고 생각한 이유는 최근 같은 문제를 다른 방법으로 해소된 분을 보았기 때문입니다.
#Julia언어 Julia+Plots에서의 애니메이션 작성에 격투하고 있었습니다만, 어떻게든 할 수 있었습니다. "ERROR: LoadError: could not spawn `ffmpeg"운명의 에러 메세지가 Windows 7, 10의 환경에서 나왔습니다만, 해소할 수 있었습니다. - Nyoi (@nyoikinkobou) 2018년 5월 9일
Pkg.add("ImageMagick")
Pkg.build("ImageMagick")
using ImageMagick
를 덧붙이면 동영상 출력할 수 있는 것 같습니다.
참고문헌
htp // // cs. 쥬아아 pぉts. 오 rg / 아 st / 아니 마치온 s /
htps : // 이 m / 우라 d / ms / f 489 아 5 아 826 에cb2087d1
Reference
이 문제에 관하여(Plots.jl에서 동영상을 출력하려면 ffmpeg 또는 imagemagick이 필요합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/STInverSpinel/items/94600300633a23512aa5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)