여러 스레드에서 avconv


9

avconv 속도를 높이기 위해 여러 프로세서 또는 스레드에서 작업을 실행할 수 있습니까?
왜 궁금하지 않더라도 진행중인 기능이 있습니까?

답변:


11

avconv-threads 옵션 뒤에 있습니다. 가장 안전한 설정은 다음과 같습니다.

 -threads auto

조금 실험하고 싶다면 정수를 설정할 수도 있습니다. 최신 FFmpeg (현재 우분투 표준)는 이것이 'ffmpeg-all'매뉴얼 페이지의이 섹션에서 볼 수있는 것처럼 auto 기본적 으로 설정 되어 있습니다.

threads integer (decoding/encoding,video)

Set the number of threads to be used, in case the selected
codec implementation supports multi-threading.

  Possible values:

     auto, 0
     automatically select the number of threads to set

 Default value is auto.

2 가지 중요한 사항에 유의하십시오.

  1. 이 설정은 선택한 코덱이 멀티 스레딩을 지원하는 경우에만 적용됩니다
  2. 단순히 전역 스레드 설정을 시도하지 않고 개별 스트림에 대한 스레드 수를 설정할 수 있습니다

1
반대로 소스가 있지만 Avconv와 avplay가 달리 지정하지 않으면 여전히 -threads auto를 기본값으로 사용한다는 인상을 받고 있습니다. 이것을 백업하는 시스템 모니터가 나타납니다.
Geek

1
나는 그것이 트랜스 코딩에 사용되는 코덱에 달려 있다고 생각합니다. 이것은 흥미로운 테스트를 위해 공식적으로 테스트 될 수 있습니다. 온라인 문제에서 찾을 수있는 정보는 특별히 도움이되지 않습니다. 또 다른 문제는 사용되는 FFmpeg의 버전입니다. 스레드 옵션은 이전 버전에서 다르게 사용되었습니다.
andrew.46

1
예. FFmpeg와 avconv는 포크 이후 약간 다른 방향으로 나아갔습니다. 추가 연구에 따르면 명령 줄에서 사전 설정 중 하나를 사용하면 avconv에서 -threads auto가 기본값으로 설정됩니다.
Geek

3

많은 파일을 오디오 트랜스 코딩하는 경우 GNU Parallel을 사용하십시오. 파일 목록을 입력으로 사용하여 시스템의 코어 수에 따라 병렬로 처리합니다. 예를 들어, 다음은 ffmpeg를 사용하여 음악을 opus 오디오 형식으로 병렬 변환하는 bash 예제입니다.

find ./* -depth -type f -name \*.ogg -o -name \*.flac -o -name \*.m4a -o -name \*.mp3 -o -name \*.ogg | parallel -j+0 --gnu nice -n 19 ffmpeg -i "{}" -acodec libopus "{.}.opus" -loglevel quiet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.