Microsoft MVP성태의 닷넷 이야기
Camtasia - "변경된" 볼륨을 일괄 설정하는 방법 [링크 복사], [링크+제목 복사],
조회: 3982
글쓴 사람
정성태 (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)
175정성태10/6/200714840BBC 뉴스를 파일로 녹음하는 방법 [2]
174정성태10/3/200712906x64 비스타에서 YBM 폰트 설치
172정성태10/1/200713822The Secret [2]
171정성태9/28/200712010구글의 차세대 사업 승부수는 ‘3D 가상현실’(?) [1]
170정성태9/28/200712572정작 마이크로소프트 스스로는 .NET Framework 을 얼마나 적용하고 있을까? [2]
169정성태9/20/200712000SyncToy 1.4와 비스타 64비트에서의 문제
166정성태9/7/200712481텍스트 편집기로서의 Visual Studio 사용 [2]
165정성태8/27/2007116766.4GB 하드 2개 처분
164정성태8/20/200713136D820 지문 인식 드라이버 - Vista x64
163정성태7/30/200712399에버런 출시일 8월 20일 [4]
162정성태7/18/200712591SSD(Solid State Drive) 의 성능 향상이 얼마나 될까? [2]
161정성태7/18/200712198Vista for x64에서의 페이징 파일 관리 문제
160정성태7/18/200712919지름의 자세가 이 정도는 되어야.
159정성태7/18/200715556D820 - 그래픽 카드 오버 클럭
158정성태7/12/200713016고민... 고민... UMPC... [4]
157정성태7/10/200713057주당 16시간 일하기
156정성태7/8/200713537Vista와 KTF iPlug: 메시지 관리
155정성태6/28/200712144백업! [1]
154정성태6/19/200712926Summer Nights
153정성태6/17/200712463내 직업...! [2]
152정성태6/15/200712204한글 IME 쓰는 방법.
151정성태6/15/200711896끌리는 UMPC들...
150정성태6/11/200711716donga.com[뉴스]-‘중퇴생’ 빌 게이츠 32년 만에 졸업장
149정성태6/10/2007122056.4GB 하드 2개 및 단면 512MB 메모리 처분
146정성태5/26/200712160일반인을 위한 프로그래밍
145정성태5/18/20071383422" LCD 모니터 사용 [4]
1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...