Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

기차사진첩

<eac3to> 'check' 옵션을 활용한 미디어 파일의 gap 확인 본문

컴퓨터

<eac3to> 'check' 옵션을 활용한 미디어 파일의 gap 확인

RailK 2023. 12. 4. 06:06

 eac3to 소프트웨어는 주로 오디오 트랙의 코덱을 변환할 수 있는 기능이 있어 유용하다. 그러면서도 미디어 파일에 gap이나 crash가 있는지 확인하는 'check' 옵션이 있는데, 필자는 오직 이 옵션에만 초점을 맞춰 m3u8 stream을 녹화한 파일에 어떤 문제가 있는지를 확인하는 방법에 관하여 설명하고자 한다.

 

 서버에서 segment 파일을 차례대로 로드하여 재생하는 것이 스트리밍의 기본적인 원리라고도 할 수 있겠는데, 공급자 서버에 과부하가 걸리거나 사용자의 네트워크 환경이 양호하지 못할 경우 간혹 도중에 segment 일부를 건너뛰고 로드되거나 segment 파일 자체에 오류가 발생할 수도 있다. 녹화한 파일의 길이가 짧은 경우 사용자가 직접 재생하여 오류를 식별할 수도 있겠지만, 그 길이가 길어지게 되면 정확히 어느 부분에서 얼마만큼의 gap이 발생했는지 또 그 횟수는 얼마나 되는지 일일이 기록 및 상기하기란 결코 쉬운 일이 아니다. 따라서 eac3to 소프트웨어의 'check' 옵션을 활용하면 이러한 부분에 있어 큰 도움이 될 수 있다.

 

먼저 필자는 eac3to.exe를 C:\eac3to 폴더 안에, 그리고 확인할 파일을 input.ts로 설정하였다. 이 파일을 eac3to 폴더 안에 넣어두어야 한다. 명령어는 아래와 같다.

cd C:\eac3to
eac3to input.ts -check

 

 작업이 완료되면 eac3to 폴더 안에 input - Log.txt 라는 로그 파일이 생성된다. 이를 통해 어느 부분에서 얼마만큼의 gap이 발생했는지를 확인할 수 있다. 아래는 실제로 gap이 발생한 미디어 파일의 로그이다. 1:26:32에서 대략 4초의 오디오 갭이 발생한 것을 확인할 수 있다. 해당 미디어 파일은 m3u8 stream을 녹화한 것인데, 해당 segment의 길이는 4초로 확인되었으니 도중에 segment 1개가 누락된 것으로 볼 수 있다.

eac3to v3.27
command line: eac3to  input.ts -check
------------------------------------------------------------------------------
TS, 1 video track, 1 audio track, 2:08:04, 58.993p
1: h264/AVC, 1080p60 (16:9)
2: AAC, 2.0 channels, 44.1kHz, -38ms
[v01] The video framerate is correct, but rather unusual.  <WARNING>
[v01] Extracting video track number 1...
[a02] Extracting audio track number 2...
[a02] Audio has a gap of 4016ms at playtime 1:26:32.  <WARNING>
Video track 1 contains 461039 frames.
eac3to processing took 33 seconds.
Done.