코덱별로 모든 비디오 찾기(컨테이너 형식이나 MIME 유형이 아님)

코덱별로 모든 비디오 찾기(컨테이너 형식이나 MIME 유형이 아님)

사용된 비디오 코덱이 포함된 모든 비디오 목록을 어떻게 얻을 수 있습니까?

다음과 같은 흥미로운 명령을 발견했습니다.미디어 정보,ffmpeg또는내보내기 도구하지만 단 하나의 영상으로 많은 정보를 제공하고 있습니다.

내가 찾은 가장 흥미로운 명령은 다음과 같습니다.문서그리고 나에게 다음과 같은 출력을 제공합니다.

$ file *
8 Mile (2002).avi:        RIFF (little-endian) data, AVI, 640 x 272, 23.98 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
1984 (1984).avi:          RIFF (little-endian) data, AVI, 960 x 540, ~24 fps, video: H.264 X.264 or H.264, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)

다음과 같은 출력을 원합니다(예: 다음에는 XviD 코덱이 있는 비디오만 변환).

~/Movies/8 Mile (2002).avi     XviD
~/Movies/1984 (1984).avi       H.264

참고: 나는macOS 시에라리온(10.12) 하지만 Linux 명령도 번역할 수 있습니다.

답변1

고쳐 쓰다

감사해요@don_crissti{}다음 으로 전달된 것을 나타냅니다 sh.언제나오류 - 해결 방법은 다음과 같습니다.

find ~/Movies/ -type f -iname "*.avi" -exec sh -c "echo $1; file $1 | cut -d, -f5 | cut -d: -f2 | sed 's/ //g' | sed 's/X.264orH.264//g'" {} \;

이것을 시도해 볼 수 있습니다 - 테스트되지 않았습니다.

find ~/Movies/ -type f -iname "*.avi" -exec sh -c "echo {}; file '{}' | cut -d, -f5 | cut -d: -f2 | sed 's/ //g' | sed 's/X.264orH.264//g'" \;
  • find: 모든 avi파일 검색~/Movies/
  • echo {}파일 이름 인쇄
  • file이것을 실행filename
  • cut -d, -f5coma(,)로 잘라낸 다섯 번째 텍스트 필드를 가져옵니다.
  • cut -d: -f2콜론(:)으로 잘린 두 번째 텍스트 필드를 가져옵니다.
  • sed텍스트에서 공백 및 중복 가능한 H264 문자열을 제거합니다.

관련 정보