HTML5 비디오를 사용하는 웹 사이트의 목적으로 76 mp4 파일을 webm으로 변환해야합니다. 10Gb의 mp4 파일에 대해 이야기하고 있습니다 … ffmpeg에게 다음을 사용하여 간단히 요청할 수 있습니다.
ffmpeg -i input_file.mp4 output_file.webm
물론 나는 그것을 재귀 적으로 할 것입니다 :
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;
인터넷에서 찾은 것을 시도해 보았습니다.
ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm
그러나 일주일도 걸리지 않을 것입니다! 내가 무엇을 잘못하고 있지? 속도를 높일 수있는 방법이 있습니까? ogg로 변환하면 속도가 향상됩니까? 도와주세요!!!
답변
비디오 트랜스 코딩에 시간이 걸립니다. 또한 매개 변수 인코딩에 대해 더 많은 지식이 필요합니다. ffmpeg의 기본값은 사용자에게 적합하지 않을 수 있으며 사용 가능한 출력 파일을 작성하지 못할 수도 있습니다.
시작은 다음과 같습니다.
http://blog.pcode.nl/2010/10/17/encoding-webm-using-ffmpeg/
이러한 설정은 특정 평균 비트 전송률 (비디오 비트 전송률 3900kbit)로 인코딩 되므로 비트 전송률이 급상승합니다.
MP4와 WebM은 다른 비디오 코덱을 사용하므로 지름길이 없습니다. 비디오를 트랜스 코딩해야합니다.
물론 인코딩 속도는 프레임 크기, 프레임 속도 및 품질 설정에 따라 크게 달라집니다. 720p 인코딩의 경우 지난 몇 년 동안 CPU에서 대략 1 : 1 (즉, 10 시간 동안 10 시간의 비디오)을 인코딩 할 수있을 것으로 예상 할 수 있습니다. 링크에 제공된 예제와 같이 2 패스 ABR 인코딩을 수행하는 경우 거의 두 배입니다.
답변
그 두 배나 반 잘라? 그래서 막 다른 골목입니다 .. 비트 전송률을 가지고 놀지 않을 것입니다. 품질이나 크기에서 무엇을 기대해야할지 전혀 몰랐습니다. 나는 이것에 충실하고 전환이 끝날 때까지 고객을 붙잡을 것이라고 생각합니다.
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;
나는 미래의 사용자를 위해 그것을 게시하고 있지만 실제로 속도를 얻었지만 CPU는 지옥처럼 작동합니다 : 각 코어에서 60-80 %! 이제는 시간이 덜 걸릴 것이라고 생각합니다. 6 또는 7 대신 3 일. 고장이 나지 않기를 바랍니다. ^ _ ^
어쨌든 고마워!
편집 : LordNeckbeard 및 neon_overload -sameq 에서 주석 후 스위치 -sameq가 제거되었습니다.
동일한 “품질”을 의미하지 않습니다.