tvh로 아이 만화를 자동 녹화 뜨고 있습니다. 이게 epg기반으로 auto rec을 하는지라 앞뒤로 내용과 상관없는 광고나
이전 또는 이후 프로그램이 같이 녹화가 됩니다. 그럴경우 불필요한 영상을 짤라 내야 하는데.....
회사에서 루팡질 하면서 나스 가지고 노는지라 눈치껏 해야 하고 결정적으로 6월달부터 skt도 테더링을 하루 LTE용량 초과 하면
막아 버리는 상황이 되다 보니 데이터 쓰는게 조심스러워 졌습니다. 그러기에 나스에 있는 영상을 노트북으로 받아서 동영상 짜르고
인코딩 후 나스로 올리기에는 데이터 사용량 때문에 부담이 되었습니다. 그러던중 지니진이님이 알려주신 ffmpeg를 알게 되었고
실 예를 들어 주면서 댓글 달아 주셔서 응용하기도 쉬워졌고 사용하기도 편하게 되었습니다 .이 자릴 빌어 지니진이님 감사드립니다..^^
저 같은 경우는 ts녹화 보다는 mkv녹화가 오히려 화질도 나쁘지 않고 원본에 가깝게 녹화 되는것 같아 mkv로 녹화를 뜹니다. 그런 다음 불필요한 동영상을 제거 하고 범용적으로 사용 하는 mp4로 인코딩 작업을 합니다.. 이 모든 작업을 나스에서 진행 합니다.
이 작업을 진행 할때 나스의 cpu는 거의 100%로 수렴 하기 때문에 나스가 아무것도 안할때 하시는걸 추천 합니다.
15분 짜리 영상을 컷팅 하는데에는 약 15초 정도면 됩니다.
영상이 컷팅이 되었기에 총 런닝 타임이 15분에서 12분 정도로 줄어들었습니다. 이렇게 컷팅된 영상 인코딩 하는데 1시간 20분 정도가
소요 되네요..그리고 어차피 불필요한 동영상을 제거 하려면 영상을 재생 시켜서 내용을 확인 할수 밖에 없습니다.
저의 작업 순서는 아래와 같습니다.
1.휴대폰으로 우선 짜를 영상 재생 시켜서 내가 남길 첫 시작 부분과 끝나는 부분을 메모 합니다.
그런 다음 아래 명령을 나스에서 실행합니다. (putty 이용 )
ex) ffmpeg -i "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03.mkv" -map 0:0 -map 0:1 -c:v copy -c:a copy -ss 00:05:57.00 -t 00:12:28.00 "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03_trim.mkv"
여기서 유의할 점이 -ss 부분은 영상 시작 시점이고 -t 부분은 시작 시점부터 12분28초 까지 남기고 나머지 뒤로 짜르겠다라는 의미
입니다. 그래서 짜르기전 영상을 파악 할때 영상 끝나는 시점 - 영상 시작하는 시점 이렇게 해야 정확하게 원하는 영상을 만들수 있습니다.
걍 단순히 영상 시작 시점과 끝 부분을 적어 주면 안됩니다..말 그대로 저 시작시점 부터 12분28초까지만 남기고 짜른다라는 개념입니다..그리고 파일명도 _trim과 같이 다른 이름으로 만듭니다. 시간 계산을 쉽게 할 수 있는 시간 계산기라는 안드로이드 앱을 추천 합니다.
2. 이렇게 짤린 동영상을 이제 인코딩을 합니다.(mkv -> mp4)
사실 어떻게 보면 이게 정말 필요한 작업일수도 있습니다. 보통의 경우 ts에서 mp4로 작업을 많이 하실겁니다..
여튼 이 작업은 나스가 한가할때 작업 하시길 바라며 1시간짜리 영상 같은건 안하시는게 정신 건강에 이롭습니다..
고작 12분 짜리 mkv 파일 mp4로 만드는데 약 1시간 30분이 소요 되며 그때 나스의 cpu는 100% 입니다..
그래도 저 처럼 회사에서 루팡질 하면서 하시는분이나 나스가 낮에는 놀고 있다거나 휴대폰 데이터를 아끼고자 하시는분들은
시도 해 보셔도 좋을것 같습니다. 마찬 가지로 putty를 이용 합니다.
ex)ffmpeg -i "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03_trim.mkv" -codec:v libx264 -profile:v baseline -preset slow -b:v 2000k -maxrate 4000k -vf scale=-1:720 -threads 0 -codec:a aac -b:a 128k -f mp4 -strict experimental "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03.mp4"
위의 첫번째 스텝에서 짜른 영상을 가지고 인코딩을 합니다.
ffmpeg 옵션에 관한건 구글에서 찾아서 걍 제 입맛대로 만든겁니다. 저렇게 하면 1980*1280 으로 녹화된 mkv파일을
1280*720 사이즈로 리사이즈 하면서 비트레이트 2000 으로 음성코덱 aac 128k로 만들어진 mp4 파일이 만들어 집니다.
옵션은 ffmpeg 공식 사이트에서 확인 하셔도 되구요, 저는 구글링 해서 이것 저것 조합해서 저 정도로 했습니다.
저렇게 인코딩 하고 나면 용량이 1/3 정도로 줄어 듭니다.. plex든 kodi든 윈도우 플레이어든 어디에서도 쉽게 재생이 됩니다.
단, 당연히(?) 화질은 저하 됩니다...그렇다고 못 볼 정도는 아닙니다.. 화질을 좋게 하시려면 -b:v 2000k -maxrate 4000k 요 부분을
높여 주시면 되는데 당연히 파일 사이즈랑 인코딩 시간은 길어 집니다.
3. 1번2번 내용을 담아 쉘을 만들어 스케쥴에 등록 시킵니다.
dsm에서 텍스트 편집기를 열어서
echo "test"
ffmpeg -i "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03.mkv" -map 0:0 -map 0:1 -c:v copy -c:a copy -ss 00:05:57.00 -t 00:12:28.00 "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03_trim.mkv"
ffmpeg -i "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03_trim.mkv" -codec:v libx264 -profile:v baseline -preset slow -b:v 2000k -maxrate 4000k -vf scale=-1:720 -threads 0 -codec:a aac -b:a 128k -f mp4 -strict experimental "/volume1/녹화경로/소피 루비.깜짝 파티 소동! 1.2017-07-03.mp4"
이렇게 내용 적고 인코딩을 유니코드(UTF-8)로 지정하고 적당한 이름 쉘을 만듭니다.그런 다음 스케쥴에 등록 시키고 원하실때 쉘 수행 하시면 됩니다.
보통의 경우 tvh autorec 하신후 자동으로 쉘 구동시켜 인코딩 하시는 방법을 많이 사용 하시는줄로 압니다.
저는 보통의 경우 처럼 하더라도 결국 동영상의 불필요한 부분을 짜를려면 영상을 재생 시켜야 하는점 때문에 이런 방법으로
적용 시켰습니다. 더더군다나 휴대폰 테더링 하면서 하는거라 데이터도 아낄수 있고....
아무튼 왕초보의 동영상 짜르기 및 인코딩의 사용기(?)는 이만 마칩니다..^^;
(당연한 얘기겠지만 고 사양의 하드웨어 스팩의 나스에서는 인코딩이나 컷팅 시간이 휠씬 줄어들겠죠..ㅎㅎ)
사용 nas : 시놀로지 ds215+ 입니다.
*ps: 당연히(?) 작업해야할 영상이 바뀌면 쉘 열어서 시간과 파일명 같은건 수정하셔야 합니다...이래 저래 수작업이 많네요.ㅠ.ㅠ
encode.sh "/volume1/소피 루비.깜짝 파티 소동! 1.2017-07-03.mkv" "00:05:57.00" "00:12:28.00"
이런식으로 사용하세요. encode.sh 는 이렇게 만들면 됩니다. 대충 만들어서 작동 테스트만 해봤네요.
#!/bin/sh
path=$(/bin/dirname "$1")
filename=$(/bin/basename "$1")
extension="${filename##*.}"
filename="${filename%.*}"
starttime="$2"
endtime="$3"
trimed="${path}"/"${filename}"_trim."${extension}"
mp4="${path}"/"${filename}".mp4
/bin/ffmpeg -i "$1" -map 0:0 -map 0:1 -c:v copy -c:a copy -ss "${starttime}" -t "${endtime}" "${trimed}"
/bin/ffmpeg -i "${trimed}" -codec:v libx264 -profile:v baseline -preset slow -b:v 2000k -maxrate 4000k -vf scale=-1:720 -threads 0 -codec:a aac -b:a 128k -f mp4 -strict experimental "${mp4}"
작업 스케쥴러 실행 하는 부분에 저렇게 쓰면 되는건가요?
ex)/volume1/web/encode.sh "/volume1/소피 루비.깜짝 파티 소동! 1.2017-07-03.mkv" "00:05:57.00" "00:12:28.00"
이렇게 쉘을 써 주고 파라메터만 바꿔서 수행 하면 될까요?
정리 잘 해 주셔서 감사합니다.
다중 파일 작업과, 파일명을 매번 바꾸시지 않으시는 참고 script는 아래와 같습니다.
아래 파일의 이름은 mkv2mp4-015.sh 입니다.
sh mkv2mp4-015.sh를 수행합니다. (mkv 파일 0, 1, 5 트랙을 복사해서 mp4를 만드는 예입니다.)
이런식으로 비슷한 이름의 많은 파일들이 존재합니다.
#!/bin/bash
IFS=$'\n'
clear
for filename in *.mkv
do
echo "$filename"
newfilename="${filename%.mkv}.mp4"
echo "${newfilename}"
ffmpeg -fix_sub_duration -i $filename -strict experimental -map 0:0 -map 0:1 -map 0:5 -c:v copy -c:a copy $newfilename
done
ffmpeg를 알게 해 주셔서 너무 감사 드립니다..^^
폰으로 영상 시작시간/끝시간만 조정해주시면 한결 쉽게 루팡이 될수 있을것 같네요 ㅋㅋ
하루종일 안주무시는건 아닐테니깐요.. 저희가 rss 많이 이용하게끔 해주시는 감사한 분들이시죠..
그런데 시작, 끝시간 트리밍은 어떻게 하시는 걸까요?
댓글 감사합니다~^^
무인코딩 Plex를 위함이죠..
2시간 4G 정도 mkv 동영상 AC3 or DTS-> AAC 변환하는데 딱 1시간 소요됩니다.
cpu hit 45%, 메모리 20Mega 정도 듭니다. (DS215j 기준)
이정도면 비록 허접한 Nas지만 다른 작업 중에도 얼마든지 돌려도 괜찮더라구요.
아... 예쁜 딸 개구장이 아들은 있습니다... 푸하하...
안녕하세요~
항상 많이 배웁니다.. 코코시은님 덕분에 한성 미니 pc에 입문(?) 할뻔 했다가
샤오미 미박스로 절충 했습니다~^^
일전에 알려 주신 SolveigMM Video Splitter 요거랑 StaxRip도 우선 노트북에선 설치까지만 해 보았습니다..^^
저희 아이는 이제 4살인데 자동 녹화의 갈길이 아주 멉니다..ㅎㅎ
다행히(?) 아직 디즈니는 시작 하지 않았습니다..그것까지 시작하면 감당이 안될수도 ㄷㄷㄷ
아래 제 게시글에 프로필 뭐 쓰시는지 알려 주세요.
그리고 녹화시 pass보다 mkv가 좋나요?
너무 궁금한 초보 입니다...
어여삐 여기시어 댓글 좀 주세요...(굽신)