Microsoft MVP성태의 닷넷 이야기
Camtasia - "변경된" 볼륨을 일괄 설정하는 방법 [링크 복사], [링크+제목 복사],
조회: 3958
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Camtasia - "변경된" 볼륨을 일괄 설정하는 방법

Camtasia를 사용해 오디오를 편집하는 경우,

camtasia_volume_1.png

위의 그림을 보면 3가지 구역으로 나뉘는데요,

  1. 가장 좌측 구역: 볼륨 게이지를 변경한 경우,
  2. 중간 구역: Audio Point를 추가하고 볼륨 게이지를 변경한 경우,
  3. 우측 구역: 기본 볼륨 상태인 경우,

위에서 첫 번째와 두 번째 경우는 "변경"의 값을 보관하기 위해 "volume"이라는 값이 추가됩니다.

"parameters": {
    "volume": {
        "type": "double",
        "keyframes": [
            {
                "endTime": 0,
                "time": 0,
                "value": 0.3,
                "duration": 0
            },
            {
                "endTime": 6232800000,
                "time": 6232800000,
                "value": 0.3,
                "duration": 0
            },
        ]
    }
},

위에서는 그 값이 "0.3"인데, 따라서 "30%"의 출력으로 바뀐 것으로 그림에서는 "중간 구역"의 설정에 해당합니다.

재미있는 건, 3번째 경우입니다. 이런 경우는 명시적인 "volume" 값이 아니라 단순히 "gain"이라는 값이 1.0으로만 설정돼 있습니다.

"id": 30,
"_type": "AMFile",
"src": 1,
"trackNumber": 2,
"attributes": {
    "ident": "01",
    "gain": 1.0,
    "mixToMono": false,
    "loudnessNormalization": true,
    "sourceFileOffset": 0
},

이 값은 오디오의 속성 창에서 변경 가능한 "Gain" 값을 반영합니다. 따라서 만약에 위의 구역을 선택하고 Gain을 다음과 같이 "200%"로 바꾸면,

camtasia_volume_2.png

해당 값은 "gain"이 2.0으로 반영됩니다. 즉 "volume" 값이 생성되지는 않고 "gain"만 변경되는 것입니다.




이로 인해, 오디오를 일괄적으로 변경하려면 2가지 방법으로 나뉩니다.

  1. 사용자가 단순히 gain 값만을 변경하거나, 기본 값인 경우
  2. 사용자가 오디오 레벨을 명시적으로 설정한 경우

우선, 위의 첫 번째 방식으로 변경했다면 단순히 해당 구역을 다중 선택(구역을 드래그 하거나, Ctrl+Shift 키와 함께 클릭)으로 지정하고 오디오 속성에서 "Gain"을 변경하면 됩니다.

재미있는 건, "Gain"으로 변경한 것은 "volume"에는 반영되지 않는다는 점입니다. 즉 위의 두 번째 방식으로 설정된 구역의 "volume"은 "Gain"과는 무관합니다.

문제는, "volume"을 일괄 변경하는 방법이 (제가 모를 수도 있지만) Camtasia에 아직 제공되지 않습니다. 어쩔 수 없이 일일이 구역 하나하나를 선택하고 모두 바꿔야 하는데요, 다행히 Camtasia가 유지하는 프로젝트 파일인 tscproj가 json 형식을 따르기 때문에 다음과 같이 간단한 파이썬 코딩으로 일괄 변경할 수 있습니다.

import json
f = open("test.tscproj")
new_file = open("new.json", "w")

data = json.load(f)

timeline = data['timeline']
sceneTrack = timeline['sceneTrack']

new_volume = 1.0

for scene in sceneTrack['scenes']:
    csml = scene['csml']
    for track in csml['tracks']:
        trackIndex = track['trackIndex']
        for media in track['medias']:
            if 'parameters' in media:
                parameters = media['parameters']
                if 'volume' in parameters:
                    volume = parameters['volume']
                    if isinstance(volume, float):
                        parameters['volume'] = new_volume
                    else:
                        volume_type = volume['type']
                        if volume_type == 'double':
                            for key_frame in volume['keyframes']:
                                keyframe_value = key_frame['value']
                                if isinstance(keyframe_value, float):
                                    key_frame['value'] = new_volume

json.dump(data, new_file, indent=4)

f.close()
new_file.close()

위의 스크립트는 test.tscproj 파일을 읽어 "new.json" 파일로 저장하는데, 이때 test.tscproj에 포함된 모든 "volume"의 값을 1.0(100%)로 바꾸게 됩니다.

간단하죠? ^^









[최초 등록일: ]
[최종 수정일: 11/6/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
420정성태10/10/20111309610월의 어느 멋진날에 - 김동규, 임금희 (사)김자경오페라단
419정성태9/15/201115090MSDN 구독자 대상으로 Windows 8 (Server / Client) Preview 버전 공개 [2]
418정성태9/11/201114151Adobe Acrobat Updater Failed Error 1625
417정성태8/26/201115986개발자 도구 스크립트 사용 안 함 메뉴 비활성 문제
416정성태8/24/201113633이런 댓글은 사양합니다. [5]
415정성태8/14/201114718NTFS 폴더에 매핑된 디스크를 삭제하는 방법 [2]
414정성태7/9/201114002커피 전문 브랜드 소개 - 로스터스 마크
413정성태7/8/201114362제 트위터에 적용해 본 소셜 키워드 그래프
412정성태5/28/201116056Windows Thin PC 관심 증가?
411정성태5/26/201118835Dell Studio 1557 - Hyper Threading 기능 제거 [1]
410정성태5/25/201120205인터넷 익스플로러 - FTP 파일 다운로드 오류
409정성태5/22/201124762KT 크린 아이에 의해서 차단된 웹 사이트 바로 잡기 [1]
408정성태5/18/201140487SoftCamp Secure KeyStroke 4.0 <vista> 무한 설치 시도 문제
407정성태5/16/201115075DisplayLink - Unable to save display settings
406정성태5/13/201113489제 웹 사이트가 Trend Micro - Internet Security 제품에서 악성 사이트로 분류되고 있습니다. [3]
405정성태4/23/201116979디스크 사용량과 파일 사용량이 틀린 경우 [1]
404정성태4/23/201120021WACOM 태블릿 - 풍선 도움말(Ctrl, Shift...) 없애는 방법 [4]
403정성태4/23/201120059윈도우 탐색기의 "새로 만들기" 메뉴에 "텍스트 문서"로 생성되는 기본 파일 변경파일 다운로드1
401정성태4/22/201118479윈도우 탐색기의 "새로 만들기" 메뉴에 "텍스트 문서" 메뉴가 없는 경우파일 다운로드1
402정성태4/22/201116804    답변글 txt 파일을 탐색기에서 열 때, 메모장으로 열리지 않는 문제
400정성태4/18/201113372샐리던트!
399정성태4/6/201122254이런 질문 공세에 답변을 하실 수 있는 분...? [5]
398정성태3/29/201116215ATI 그래픽 카드가 장착된 컴퓨터에서 IE 9 동영상 재생 문제 [2]
397정성태3/28/201118745능엄주(Surangama mantra)를 외다, 채식을 하다
396정성태3/26/201121316비정상적인 "System Volume Information" 폴더 사용량
395정성태3/24/201117719윈도우 7/R2 - C 드라이브 용량이 부족해 SP1 설치가 안된다면?
1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...