Linux arecord 명령을 사용하여 여러 FLAC 파일을 생성하는 방법은 무엇입니까?

사용자 3430896

Linux arecord명령을 사용하여 파일 시간 플래그 등을 사용하여 여러 FLAC 유형 파일을 기록하고 저장하고 싶습니다 .

--max-file-time 

wav 파일의 경우 --max-file-time플래그를 사용하여 여러 파일을 저장하는 것은 매우 간단합니다 . 아래 예에서는 6 채널 오디오의 10 초마다 새 wav 파일이 저장됩니다.

arecord -t raw -f S16_LE -r 44100 --max-file-time 10 -D ac108 -c 6 --use-strftime listen-%H-%M-%v.wav

에서 이 대답 기여가에 오디오 데이터를 배관하여 FLAC 파일에 기록하는 방법을 보여 주었다 flac이하로 입증 된 바와 같이, FLAC의 formatfile에서 출력 프로그램 :

arecord -t raw -f S16_LE -r 44100 -D ac108 -c 6 | flac - -f --endian little --sign signed --channels 6 --bps 16 --sample-rate 44100 -s -o listen.flac

내 질문은 단순히 각 파일의 크기가 비슷한 여러 FLAC 파일에 기록 할 수있는 Linux 명령을 구성하는 방법입니다.

카밀 마시오 로프 스키

arecord생성 한 원시 형식의 다음 속성을 활용 해 보겠습니다 .

  • 헤더도 메타 데이터도 없습니다.
  • 각 전체 샘플은 6 (채널 수) x 2 바이트 (즉, 16 비트)이므로 정확히 12 바이트입니다.
  • 매초마다 정확히 44100 개의 샘플이 있습니다.

따라서 1 초마다 44100 × 12 = 529200 바이트가 걸립니다. 10 초를 얻으려면 5292000 바이트가 필요합니다. 스트림에서 연속 된 5292000 바이트의 임의 청크를 가져올 수 없습니다. 중간 샘플을 시작하지 않도록해야합니다. 그러나 처음 5292000 바이트에는 확실히 정수 개수의 샘플 (엄격히 44100 개 샘플)이 포함되고 다음 5292000 바이트, 다음 등이 포함됩니다.

이것이 split명령이 할 수있는 일입니다. 스트림을 주어진 크기의 조각으로 나눌 수 있습니다. 진정한 마법은 --filter=옵션 에서 비롯됩니다 .

arecord -t raw -f S16_LE -r 44100 -D ac108 -c 6 \
| split -d -b 5292000 --filter='
flac - -f --endian little --sign signed --channels 6 --bps 16 --sample-rate 44100 -s -o "${FILE}.flac"
'

위의 파이프 라인 splitflac각 데이터에 대해 실행 됩니다.

메모:

  • --filterPOSIX에서는 필요하지 않습니다. 당신 split은 그것을 지원하거나 지원하지 않을 수 있습니다.
  • 확장 대상에 man 1 split영향을 미치는 옵션을 알아 보려면를 참조하십시오 ${FILE}. 난 그냥 사용 -d그래서 내 경우에는,의 x00, x01, x02, ...
  • 이것은 파이프 라인이므로 Ctrl+ C는 SIGINT를 arecordsplit. 내 테스트에서이 (잘린 마지막 FLAC 파일을 만드는 split종료 flac내가 얻을 수 있도록, 하드 방식으로?) ERROR while decoding data, state = FLAC__STREAM_DECODER_END_OF_STREAM나중에 파일을 디코딩하면서. SIGINT를 arecord(예 killall arecord) 로만 전송 하면 split(가장 중요한 것은) flac정상적으로 완료됩니다.
  • 이 명령은 가독성을 위해 여러 줄을 사용하지만 논리적으로는 다음 형식의 한 줄입니다.

    arecord … | split … --filter='flac …'
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Linux에서 exec 명령을 사용하여 wget 명령을 사용하는 방법은 무엇입니까?

분류에서Dev

Linux 명령 줄을 사용하여 .DOCX 파일 내의 단어를 바꾸는 방법은 무엇입니까?

분류에서Dev

Unix 명령을 사용하여 메일에 여러 파일을 첨부하는 방법은 무엇입니까?

분류에서Dev

명령 줄을 사용하여 파일을 여러 폴더에 복사하는 방법은 무엇입니까?

분류에서Dev

명령 줄을 사용하여 여러 파일을 복사하는 방법은 무엇입니까?

분류에서Dev

Linux 명령을 사용하여 생성 된 파일 시간과 날짜를 수정하는 다른 방법은 무엇입니까?

분류에서Dev

rm 명령을 사용하여 여러 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

CMake : 소스 파일을 생성하기 위해 여러 파일에서 사용자 지정 명령을 실행하는 방법은 무엇입니까?

분류에서Dev

명령 줄을 사용하여 구성 파일을 편집하는 방법은 무엇입니까?

분류에서Dev

Linux 명령을 사용하여 1 분마다 시간을 표시하는 방법은 무엇입니까?

분류에서Dev

Linux에서 메일 명령을 사용하는 동안 여러 줄을 이메일 본문에 에코하는 방법은 무엇입니까?

분류에서Dev

Linux 터미널 : ls 명령을 사용하여 확장명이있는 파일을 보는 방법은 무엇입니까?

분류에서Dev

정렬을 변경하지 않고 Linux 명령을 사용하여 터미널에서 새 파일로 출력을 쓰는 방법은 무엇입니까?

분류에서Dev

Linux 명령을 사용하여 jmeter를 실행하는 방법은 무엇입니까?

분류에서Dev

Linux에서 날짜를 사용하여 명령을 기록하는 방법은 무엇입니까?

분류에서Dev

Linux 명령을 사용하여 파일 크기와 파일 번호를 확인하는 방법은 무엇입니까?

분류에서Dev

LINUX 명령 줄을 사용하여 절대 및 상대 경로로 classlist 파일을 나열하는 방법은 무엇입니까?

분류에서Dev

dd Linux 명령을 사용하여 인터넷에서 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

dd 명령을 사용하여 .img 파일을 SD 카드에 복사하는 방법은 무엇입니까?

분류에서Dev

Linux 명령을 사용하여 한 디렉토리를 여러 디렉토리에 복사하는 방법은 무엇입니까?

분류에서Dev

Linux openssl을 사용하여 iOS 용 CSR을 생성하는 방법은 무엇입니까?

분류에서Dev

echo 및 sed를 사용하여 생성 된 쉘 명령을 실행하는 방법은 무엇입니까?

분류에서Dev

wget 명령을 사용하여 Dropbox 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

정규식을 사용하여 명령 줄에서 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

WinSCP 명령 줄을 사용하여 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

쉘 프로파일을 사용하여 v 명령을 변경 / 수정하는 방법은 무엇입니까?

분류에서Dev

find 및 rm 명령을 사용하여 파일을 제거하는 방법은 무엇입니까?

분류에서Dev

명령을 사용하여 github 저장소에 파일을 업로드하는 방법은 무엇입니까?

분류에서Dev

soffice 명령을 사용하여 pdf 파일을 jpg로 변환하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Linux에서 exec 명령을 사용하여 wget 명령을 사용하는 방법은 무엇입니까?

  2. 2

    Linux 명령 줄을 사용하여 .DOCX 파일 내의 단어를 바꾸는 방법은 무엇입니까?

  3. 3

    Unix 명령을 사용하여 메일에 여러 파일을 첨부하는 방법은 무엇입니까?

  4. 4

    명령 줄을 사용하여 파일을 여러 폴더에 복사하는 방법은 무엇입니까?

  5. 5

    명령 줄을 사용하여 여러 파일을 복사하는 방법은 무엇입니까?

  6. 6

    Linux 명령을 사용하여 생성 된 파일 시간과 날짜를 수정하는 다른 방법은 무엇입니까?

  7. 7

    rm 명령을 사용하여 여러 파일을 삭제하는 방법은 무엇입니까?

  8. 8

    CMake : 소스 파일을 생성하기 위해 여러 파일에서 사용자 지정 명령을 실행하는 방법은 무엇입니까?

  9. 9

    명령 줄을 사용하여 구성 파일을 편집하는 방법은 무엇입니까?

  10. 10

    Linux 명령을 사용하여 1 분마다 시간을 표시하는 방법은 무엇입니까?

  11. 11

    Linux에서 메일 명령을 사용하는 동안 여러 줄을 이메일 본문에 에코하는 방법은 무엇입니까?

  12. 12

    Linux 터미널 : ls 명령을 사용하여 확장명이있는 파일을 보는 방법은 무엇입니까?

  13. 13

    정렬을 변경하지 않고 Linux 명령을 사용하여 터미널에서 새 파일로 출력을 쓰는 방법은 무엇입니까?

  14. 14

    Linux 명령을 사용하여 jmeter를 실행하는 방법은 무엇입니까?

  15. 15

    Linux에서 날짜를 사용하여 명령을 기록하는 방법은 무엇입니까?

  16. 16

    Linux 명령을 사용하여 파일 크기와 파일 번호를 확인하는 방법은 무엇입니까?

  17. 17

    LINUX 명령 줄을 사용하여 절대 및 상대 경로로 classlist 파일을 나열하는 방법은 무엇입니까?

  18. 18

    dd Linux 명령을 사용하여 인터넷에서 파일을 다운로드하는 방법은 무엇입니까?

  19. 19

    dd 명령을 사용하여 .img 파일을 SD 카드에 복사하는 방법은 무엇입니까?

  20. 20

    Linux 명령을 사용하여 한 디렉토리를 여러 디렉토리에 복사하는 방법은 무엇입니까?

  21. 21

    Linux openssl을 사용하여 iOS 용 CSR을 생성하는 방법은 무엇입니까?

  22. 22

    echo 및 sed를 사용하여 생성 된 쉘 명령을 실행하는 방법은 무엇입니까?

  23. 23

    wget 명령을 사용하여 Dropbox 파일을 다운로드하는 방법은 무엇입니까?

  24. 24

    정규식을 사용하여 명령 줄에서 파일을 삭제하는 방법은 무엇입니까?

  25. 25

    WinSCP 명령 줄을 사용하여 파일을 다운로드하는 방법은 무엇입니까?

  26. 26

    쉘 프로파일을 사용하여 v 명령을 변경 / 수정하는 방법은 무엇입니까?

  27. 27

    find 및 rm 명령을 사용하여 파일을 제거하는 방법은 무엇입니까?

  28. 28

    명령을 사용하여 github 저장소에 파일을 업로드하는 방법은 무엇입니까?

  29. 29

    soffice 명령을 사용하여 pdf 파일을 jpg로 변환하는 방법은 무엇입니까?

뜨겁다태그

보관