[ffmpeg] ๊ธฐ๋ณธ

[์›๋ณธ ๋งํฌ]

ffmpeg์€ ์˜์ƒํŒŒ์ผ์˜ ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ์„ ์ง€์›ํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์˜คํ”ˆ์†Œ์Šค๋‹ค.

๋ฏธ๋””์–ด ๊ด€๋ จ ํ™˜๊ฒฝ์„ ์ง€๋ฐฐํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€์ด๋ผ๊ณ  ๋ด๋„ ๋œ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด ์†Œํ”„ํŠธ์›จ์–ด๋‚˜. ์˜์ƒํŽธ์ง‘์„ ์ง€์›ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ „๋ฐ˜์ด ffmpeg์— ์˜์กดํ•œ๋‹ค.

์›๋ณธ ์†Œ์Šค์ฝ”๋“œ๋Š” C ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ณ , ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ FFI wrapper๋‚˜ ํ”„๋กœ์„ธ์Šค ํ˜ธ์ถœ์„ ํ†ตํ•ด ๊ฐ–๋‹ค์“ฐ๋Š” ํ˜•ํƒœ๊ฐ€ ๋œ๋‹ค.




์„ค์น˜

์ผ๋ฐ˜์ ์ธ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์—์„œ๋Š” ํŒจํ‚ค์ง€๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ์„ค์น˜ ๊ฐ€๋Šฅํ•˜๋‹ค.

sudo apt-get install ffmpeg

๊ทธ๋ž˜์„œ ์‹คํ–‰์ด ๋˜๋ฉด, ์„ค์น˜๋Š” ์ž˜ ๋œ ๊ฒƒ์ด๋‹ค.

์ง์ ‘ ํŒจํ‚ค์ง€๋ฅผ ๋ฐ›๊ฑฐ๋‚˜, ์ธ์Šคํ†จ๋Ÿฌ๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณต์‹ ํŽ˜์ด์ง€์—์„œ ๋ฐ›์œผ๋ฉด ๋œ๋‹ค.
https://www.ffmpeg.org/download.html




๊ธฐ๋ณธ ๊ฐœ๋…

์˜์ƒ์ฒ˜๋ฆฌ๋ฅผ ๋‹ค๋ฃจ๋ ค๋ฉด ์ผ๋ฐ˜ ๋ฏธ๋””์–ด์—์„œ ์ถ”๊ฐ€๋˜๋Š” ์š”์†Œ๋“ค์ด ์ข€ ์žˆ๋‹ค. ๊ทธ๊ฑฐ์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ์งš๊ณ  ๊ฐ€๋ฉด ์ข‹์„๊ฑฐ๊ฐ™๋‹ค.



๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ

์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์ง„ ๊ฐ™์€ ๋ฏธ๋””์–ด ํŒŒ์ผ์—์„œ๋Š” "์ธ์ฝ”๋”ฉ"๊ณผ "๋””์ฝ”๋”ฉ"์„ ํ†ตํ•ด์„œ ํŒŒ์ผ์ด ์ €์žฅ๋˜๊ณ  ํ‘œํ˜„๋œ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ํŠน์ • ์ด๋ฏธ์ง€ ํŒŒ์ผ ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ "์ธ์ฝ”๋”ฉ"์ด๋ผ๊ณ  ํ•˜๊ณ , ๊ทธ๊ฑธ ์‹ค์ œ๋กœ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ’€์–ด์„œ ์ฝ๋Š” ๊ฒƒ์„ ๋””์ฝ”๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์˜์ƒ์ฒ˜๋ฆฌ์—๋„ ์ด๋Ÿฐ ์šฉ์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๋Š”๊ฑด ๋˜‘๊ฐ™์ง€๋งŒ, ๋ฏธ๋””์–ด ์†Œ์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋ผ์„œ ์ƒ๊ธฐ๋Š” ์ฐจ๋ณ„์ ์ด ์žˆ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ "๋จน์‹ฑ(Muxing)"๊ณผ "๋””๋จน์‹ฑ(Demuxing)"์ด๋‹ค. ๋จน์‹ฑ์€ ์ค€๋ง์ด๊ณ  Multiplexing์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

์•Œ๋‹ค์‹œํ”ผ ์˜์ƒ์€ ํ™”๋ฉด๊ณผ ์†Œ๋ฆฌ๊ฐ€ ํ•จ๊ป˜ ๋‚˜์˜ค๋Š” ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์†Œ๋ฆฌ์™€ ์˜์ƒ์„ ๋™์‹œ์— ๋ญ‰์ณ์„œ ์ €์žฅํ•˜๋Š”๋ฐ, ์ด๊ฑธ ๋จน์‹ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋ญ‰์ณ๋†“์€ ์˜์ƒ ํŒŒ์ผ์—์„œ ํ™”๋ฉด๊ณผ ์†Œ๋ฆฌ๋ฅผ ๋ถ„ํ•ดํ•ด์„œ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋””๋จน์‹ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค.

https://wikidocs.net/78484
๊ทธ๋ž˜์„œ ์˜์ƒํŒŒ์ผ์„ ์••์ถ•ํ• ๋•Œ๋Š” ๋จผ์ € ํ™”๋ฉด๊ณผ ์˜ค๋””์˜ค๋ฅผ ๋ณ„๋„๋กœ ์ธ์ฝ”๋”ฉํ•œ ๋‹ค์Œ์—, ๊ฐ๊ฐ์„ ์••์ถ•(๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ)ํ•ด์„œ wmv ๊ฐ™์€ ์˜์ƒํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค.
์˜์ƒํŒŒ์ผ์„ ์žฌ์ƒํ•  ๋•Œ๋Š” ๋ฐ˜๋Œ€๋กœ demuxing์„ ํ†ตํ•ด ํ™”๋ฉด ์š”์†Œ์™€ ์˜ค๋””์˜ค ์š”์†Œ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค์Œ์—, ํ™”๋ฉด๊ณผ ์˜ค๋””์˜ค๋ฅผ ๊ฐ๊ฐ ๋””์ฝ”๋”ฉํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค.



bitrate

bitrate๋Š” ๋‹จ์œ„ ์‹œ๊ฐ„๋‹น ์ „์†ก๋˜๋Š” ๋น„ํŠธ์˜ ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ๋‹น์—ฐํžˆ ๋น„ํŠธ ์ „์†ก๋Ÿ‰์ด ๋งŽ์•„์•ผ ์ค˜์•ผ ๋น„๋””์˜ค ํ’ˆ์งˆ์ด ์ข‹์•„์ง€์ง€๋งŒ, ๊ทธ๋งŒํผ ํŒŒ์ผ ํฌ๊ธฐ๋„ ์ปค์ง„๋‹ค.

๋ณดํ†ต ์ด๋Ÿฐ ์‹์œผ๋กœ ํ‘œํ˜„๋˜๋Š”๋ฐ, ์ด๋Ÿฌ๋ฉด 1์ดˆ์— 644kb๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

ํ•œ๋ฒˆ ์˜์ƒํŒŒ์ผ์„ ํ•˜๋‚˜ ๊นŒ๋ณด์ž.

ffprobe -v error -select_streams v:0 -show_entries stream=codec_type,codec_name,bit_rate,avg_frame_rate -of default=noprint_wrappers=1 tetrio.mp4

์ด๋Ÿฌ๋ฉด bitrate๊ฐ€ 476701. ์ดˆ๋‹น 476kb์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๋œป์ด ๋œ๋‹ค.

๊ทผ๋ฐ bitrate๋„ ํฌ๊ฒŒ 2๊ฐ€์ง€ ์„ค์ • ๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ๊ณ ์ •ํ˜•์ด๊ณ  ํ•˜๋‚˜๋Š” ๊ฐ€๋ณ€ํ˜•์ด๋‹ค. ์ด๊ฑด ํŒŒ์ผ ์ˆ˜์ค€์—์„œ ์ด๋ฏธ ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฐ’์ด๋‹ค.

๊ณ ์ • bitrate(CBR:constant bit rate)์˜ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋“  ํ”„๋ ˆ์ž„์— ๋™์ผํ•œ bitrait๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค. ์ด๊ฑด ์ „๋ฐ˜์ ์ธ ๋น„ํšจ์œจ์„ฑ์ด ๋งŽ์•„์„œ, ์˜ค๋””์˜ค ํฌ๋งท์—๋Š” ์•„์ง ์ง€๋ฐฐ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์˜์ƒ์ฒ˜๋ฆฌ์—์„œ๋Š” ๊ฑฐ์˜ ์‚ฌ์žฅ๋˜์—ˆ๋‹ค.

๊ฐ€๋ณ€ํ˜• bitrate(VBR:variable bit rait)์˜ ๊ฒฝ์šฐ์—๋Š” ํ”„๋ ˆ์ž„๋งˆ๋‹ค ๋‹ค๋ฅธ bitrate๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋‹จ์ˆœํ•œ ํ™”๋ฉด์—๋Š” bitrate๋ฅผ ์ ๊ฒŒ๋งŒ ๋˜์ ธ์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์•„๋ผ๊ณ , ๋ณต์žกํ•œ ํ™”๋ฉด์—๋Š” bitrate๋ฅผ ๋†’์—ฌ์„œ ์ž˜ ํ‘œํ˜„ํ•œ๋‹ค๋“ ์ง€ ํ•˜๋Š” ์ปดํŒฉํŠธํ•œ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
ํŒŒ์ผ ํฌ๊ธฐ๋„ ํ›จ์”ฌ ์ž‘๊ณ , ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋„ ์ ์–ด์„œ ์ „๋ฐ˜์ ์œผ๋กœ ๋” ์ข‹์€ ์˜์ƒ ํ’ˆ์งˆ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒŒ ์žฅ์ ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ํ™” ํŒŒ์ผ์„ mp4๋กœ ๋‹ค์šด๋ฐ›๊ฑฐ๋‚˜ ํ•˜๋ฉด, ๊ทธ๊ฑด ๋ณดํ†ต ๊ฐ€๋ณ€ํ˜• bitrate๋กœ ์ธ์ฝ”๋”ฉ๋œ ํŒŒ์ผ์ด๋‹ค. ์ด๋Ÿฐ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์— ์žˆ์–ด์„œ ๊ณ ์ • bitrate๋Š” ๊ฑฐ์˜ ์‚ฌ์žฅ๋˜์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์˜์ƒํŒŒ์ผ ํ•˜๋‚˜๋งŒ ๊นŒ๋ด๋„, ํŒจํ‚ท ์‚ฌ์ด์ฆˆ๊ฐ€ ์™€๋ฆฌ๊ฐ€๋ฆฌํ•˜๋Š”๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ffprobe -v error -select_streams v:0 -show_entries frame=pkt_size,pkt_duration_time -of csv=p=0 tetrio.mp4

๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ๊ณ ์ •ํ˜• bitrate๊ฐ€ ์“ฐ์ด์ง€ ์•Š๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
๋„คํŠธ์›Œํฌ ์ˆ˜์ค€์˜ ํŒŒ์ผ ์ „์†ก ์ฒ˜๋ฆฌ์—์„œ๋Š” ๊ณ ์ • bitrate๊ฐ€ ํ›จ์”ฌ ์•ˆ์ •์ ์ด๋‹ค. ํฌ๊ธฐ๊ฐ€ ํ•ญ์ƒ ์ผ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ผ๋ก€๋กœ, ๊ฐ€๋ณ€ํ˜• bitrate์˜ ๊ฒฝ์šฐ์—๋Š” ๋ณต์žกํ•œ ํ™”๋ฉด์—์„œ์˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ปค์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฐ๊ฑด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฒ„๋ฒ…์ž„์œผ๋กœ ๋‚˜ํƒ€๋‚  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์ข€ ์žˆ๋‹ค.
๊ฒŒ๋‹ค๊ฐ€ ์˜ค๋””์˜ค์™€ ๋น„๋””์˜ค๊ฐ€ ๋”ฐ๋กœ ๋…ผ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋ถˆ์•ˆ์ •์„ฑ์ด ๊ต‰์žฅํžˆ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ŠคํŠธ๋ฆฌ๋ฐ์—์„œ ๊ฐ€๋ณ€ํ˜• bitrate๋Š” ์ผ๋ฐ˜์ ์ธ ์„ ํƒ์ด ์•„๋‹ˆ์—ˆ๋‹ค.



Adaptive bitrate (with HTTP)

๊ณ ์ •ํ˜• bitrate์™€ ๊ฐ€๋ณ€ํ˜• bitrate์˜ ์•ฝ๊ฐ„ ์ ˆ์ถฉ์•ˆ์œผ๋กœ์„œ ๋‚˜์˜จ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์œ„ํ•œ ์ค‘๊ฐ„ ๊ฐœ๋…์ด๋‹ค.
์š”์ฆ˜์— ์ŠคํŠธ๋ฆฌ๋ฐ์ด๋ผ๊ณ  ํ•˜๋ฉด ์ด ์ ‘๊ทผ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์œ ํˆฌ๋ธŒ๋‚˜ ๋„ทํ”Œ๋ฆญ์Šค ๋“ฑ ๋งŽ์€ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์ด ์ด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ด๊ฑด ์˜์ƒํŒŒ์ผ์„ ์ดˆ๋‹จ์œ„๋กœ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ "์„ธ๊ทธ๋จผํŠธ"๋ผ๋Š” ์ž‘์€ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋‘” ๋‹ค์Œ์—, ์‚ฌ์šฉ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ถฉ๋ถ„ํ•˜๋‹ค๋ฉด ๋ฏธ๋ฆฌ ์ž”๋œฉ ๋ณด๋‚ด๊ณ , ์•„๋‹ˆ๋ฉด ์กฐ๊ธˆ์”ฉ ๋ณด๋‚ด๊ณ  ํ•˜๋Š” ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค.
์„ธ๊ทธ๋จผํŠธ๋„ ์ผ๋‹จ์€ ํŒŒ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋ณ€ bitrait์™€ ๊ณ ์ • bitrate ๋‘˜์ค‘์— ๊ณจ๋ผ์„œ ์ธ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋„ ๊ฐ€๋ณ€ bitrate๊ฐ€ ์กฐ๊ธˆ ๋” ์ผ๋ฐ˜์ ์ด๋‹ค.

ffmpeg๋„ ๋‹น์—ฐํžˆ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค.




๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

ffmpeg์€ ์ •๋ง ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

์˜์ƒํŒŒ์ผ์˜ ๋‹จ์ˆœํ•œ ํฌ๋งท ๋ณ€ํ™˜๋ถ€ํ„ฐ ํ•ด์„œ, ํ”„๋ ˆ์ž„ ์กฐ์ ˆ, bitrate ์กฐ์ ˆ, ์ž๋ง‰ ์ฒ˜๋ฆฌ ๋“ฑ๋“ฑ, ์˜์ƒ ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋‹ค. ์ด๊ฑฐ ํ•˜๋‚˜๋งŒ ์ž˜ ๋ฐฐ์›Œ์„œ ์“ธ ์ค„ ์•Œ์•„๋„ ์˜์ƒ์ฒ˜๋ฆฌ๋ฅผ ์•ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ผ๋‹จ ์—ฌ๊ธฐ์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ก€๋งŒ ๋ช‡๊ฐ€์ง€ ๋‹ค๋ค„๋ณด๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค.

mp4 ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ค€๋น„ํ•˜์ž.

๊ทธ๋ƒฅ ํ…ŒํŠธ๋ฆฌ์Šค ํ”Œ๋ ˆ์ด ์˜์ƒ์ด๋‹ค.




ํŒŒ์ผ ํฌ๋งท ๋ณ€ํ™˜

ํŒŒ์ผ ํฌ๋งท์„ ๋ฐ”๊ฟ”์„œ ์ €์žฅํ•˜๋Š” ๊ฒƒ๋„ ๊ฝค๋‚˜ ํ‘œ์ค€์ ์ธ ์˜์ƒ ํŽธ์ง‘ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋‹ค.
์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.
-i ์ธ์ž๋กœ ์ž…๋ ฅ ํŒŒ์ผ์„ ๋„ฃ๊ณ , ์ถœ๋ ฅ ํŒŒ์ผ๋ช…์— ํ™•์žฅ์ž๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด, ์•Œ์•„์„œ ํ™•์žฅ์ž๋ฅผ ์ธ์‹ํ•˜๊ณ  ๊ทธ ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.

ffmpeg -i tetrio.mp4 tetrio.avi

์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๊ฑธ๋ฆฌ๊ธด ํ•˜๋Š”๋ฐ, ์ ๋‹นํžˆ ๋œ๋‹ค.


avi ํŒŒ์ผ์ด ์ž˜ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๋ฏธ๋””์–ด ํŒŒ์ผ์€ ๊ทธ๋ƒฅ ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด ํ•˜๋‚˜ ๊น”์•„์„œ ๋Œ๋ ค๋„ ๋˜์ง€๋งŒ, ffmpeg์— ๋‚ด์žฅ๋œ ffplay๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋„ ํŽธ๋ฆฌํ•œ ํŽธ์ด๋‹ค.

์ž˜ ๋งŒ๋“ค์–ด์กŒ๋‹ค.




๋™์˜์ƒ ์ž๋ฅด๊ธฐ

๋™์˜์ƒ์„ ํŠน์ • ๋ฒ”์œ„๋กœ ์ž๋ฅด๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์˜์ƒ์ฒ˜๋ฆฌ ํŒจํ„ด์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹จ์ˆœ ํŽธ์ง‘์„ ์œ„ํ•ด์„œ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋น ๋ฅธ ์ŠคํŠธ๋ฆฌ๋ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ ์˜์ƒ์„ ์ž˜๊ฒŒ ์ž˜๋ผ์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์•„๋ž˜๋Š” mp4 ํŒŒ์ผ์„ 5์ดˆ-20์ดˆ ๋ฒ”์œ„๋กœ 15์ดˆ๋งŒ ์ž˜๋ผ์„œ ์ƒ์„ฑํ•˜๋Š” ์˜ˆ์ œ๋‹ค.

ffmpeg -i tetrio.mp4 -ss 00:00:05 -to 00:00:20 -c copy short.mp4

๊ทธ๋Ÿผ ์˜์ƒํŒŒ์ผ ์ž์ฒด๊ฐ€ ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ 


์˜ˆ์ƒํ•œ๋Œ€๋กœ ์ž˜ ์ž˜๋ ค์„œ ๋Œ์•„๊ฐˆ ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.



์ฐธ์กฐ
https://github.com/FFmpeg/FFmpeg
https://www.ffmpeg.org/ffmpeg.html
https://wikidocs.net/78484