- 질문 게시판입니다.
Date | 24/01/07 22:00:32 |
Name | 매뉴물있뉴 |
Subject | 다운 중인 파일을 재생해보기 |
제곧내인데 조금 특이한것 같아서 물어보고 싶읍니다. ㅋㅋ 1 토렌트에서 비디오 파일을 다운 받는 도중 2 구글 크롬이 비디오 파일을 다운 받는 도중 같은 상황에서는 아직 비디오파일이 다운 받아지고 있는 상황에서도 영상 재생 프로그램에 비디오 파일을 구겨넣어 강제로 재생 돌려보라고 시키면 전체가 다 다운되지 않았음에도 불구하고 '지금 현재 다운로드 완료된 부분'은 재생이 되는것 같습니다. 하지만 3 ffmpeg으로 m3u8을 다운 받을때는 현재 다운중인 비디오파일을 플레이어에 넣어도 실행이 안됩니다. (예시: ffmpeg.exe -c copy -bsf:a aac_adtstoasc "c:전체경기.mp4" -nostats -loglevel 24 -headers "Referer: https://www.spotvnow.co.kr/" -i "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/5764318566001/988b0546-7b2c-4783-bdbe-fosejagksanswkdufemf/10s/master.m3u8?fastly_token=fosejagksEhekfmsanswkdufemf%3D%3D") 딱히 뭐가 엄청 불편하거나 한것은 아닙니다. 다만 왜 이런일이 생길수 있는걸까요? ㅋㅋ 호기심이 들어서 질문 해보았읍니다. 0
|
일단 간단하게 수단과 방법(?) 부터 알려드리자면... https://superuser.com/a/1790189 를 참조하시면 됩니다.
ms windows이실테니, tee 라는 명령어가 안될거라, 같은 역할을 하는 프로그램을 받아서 써도 되고..
(예: https://githu... 더 보기
ms windows이실테니, tee 라는 명령어가 안될거라, 같은 역할을 하는 프로그램을 받아서 써도 되고..
(예: https://githu... 더 보기
일단 간단하게 수단과 방법(?) 부터 알려드리자면... https://superuser.com/a/1790189 를 참조하시면 됩니다.
ms windows이실테니, tee 라는 명령어가 안될거라, 같은 역할을 하는 프로그램을 받아서 써도 되고..
(예: https://github.com/dEajL3kA/tee-win32/tree/master#tee-for-windows)
그냥 stdout을 파일로 써버려도 됩니다. (mpv로 재생하지 않고, 다른 미디어 플레이어로 재생하실테니깐요.
그럼 이렇게 고치면 되겠다 싶습니다. (정확하지는 않으니 대충 고쳐서 쓰십시오):
ffmpeg.exe -c copy -bsf:a aac_adtstoasc -nostats -loglevel 24 -headers "Referer: https://www.spotvnow.co.kr/" -i "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/5764318566001/988b0546-7b2c-4783-bdbe-fosejagksanswkdufemf/10s/master.m3u8?fastly_token=fosejagksEhekfmsanswkdufemf%3D%3D" -f ismv pipe:1 > 전체경기.mp4
ffmpeg은 기본적으로 mov/mp4의 재생을 위한 메타데이터를 파일의 끝에 씁니다. 그게 있어야 재생이 되는데, 당연히 파일이 완성되질 않은 상태에서 메타데이터가 있을리 없지요. 이 메타데이터를 파일 앞쪽에 쓰게 하는 방법으로 재생을 할 수 있게 만들 수 있는데, 여기서 사용한 옵션이 -f ismv입니다. (위 링크의 설명에도 있지요) mov/mp4 이외의 파일 컨테이너 포맷에 따라서도 비슷하게 fragment만으로 재생여부에 차이가 있을 수 있습니다.
ms windows이실테니, tee 라는 명령어가 안될거라, 같은 역할을 하는 프로그램을 받아서 써도 되고..
(예: https://github.com/dEajL3kA/tee-win32/tree/master#tee-for-windows)
그냥 stdout을 파일로 써버려도 됩니다. (mpv로 재생하지 않고, 다른 미디어 플레이어로 재생하실테니깐요.
그럼 이렇게 고치면 되겠다 싶습니다. (정확하지는 않으니 대충 고쳐서 쓰십시오):
ffmpeg.exe -c copy -bsf:a aac_adtstoasc -nostats -loglevel 24 -headers "Referer: https://www.spotvnow.co.kr/" -i "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/5764318566001/988b0546-7b2c-4783-bdbe-fosejagksanswkdufemf/10s/master.m3u8?fastly_token=fosejagksEhekfmsanswkdufemf%3D%3D" -f ismv pipe:1 > 전체경기.mp4
ffmpeg은 기본적으로 mov/mp4의 재생을 위한 메타데이터를 파일의 끝에 씁니다. 그게 있어야 재생이 되는데, 당연히 파일이 완성되질 않은 상태에서 메타데이터가 있을리 없지요. 이 메타데이터를 파일 앞쪽에 쓰게 하는 방법으로 재생을 할 수 있게 만들 수 있는데, 여기서 사용한 옵션이 -f ismv입니다. (위 링크의 설명에도 있지요) mov/mp4 이외의 파일 컨테이너 포맷에 따라서도 비슷하게 fragment만으로 재생여부에 차이가 있을 수 있습니다.
와! 그렇군요 ㅋㅋㅋㅋㅋ 신기합니다. ㅋㅋㅋ
다만 적어주신 대로는 역시 작동하지 않았읍니다.
-f ismv옵션의 위치를 앞쪽으로 조금 옮겨주었읍니다.
-bsf 옵션하고 -nostats옵션 사이에 -f ismv를 넣어주니까 작동하는군요 ㅋㅋㅋ
사실 메타박스위치 때문일꺼라고는 전혀 상상하지 못했읍니다.
그냥 파일이 열려있고, 다른프로그램이 사용중이라서
다른 프로그램이 엑세스하지 못하는 머 그런 것으로만 생각했다능...
그래서 몇가지 실험을 더해보았는데
다운로드 받다 말고 ffmpeg을 중단시켜 보았읍니다.
1 f... 더 보기
다만 적어주신 대로는 역시 작동하지 않았읍니다.
-f ismv옵션의 위치를 앞쪽으로 조금 옮겨주었읍니다.
-bsf 옵션하고 -nostats옵션 사이에 -f ismv를 넣어주니까 작동하는군요 ㅋㅋㅋ
사실 메타박스위치 때문일꺼라고는 전혀 상상하지 못했읍니다.
그냥 파일이 열려있고, 다른프로그램이 사용중이라서
다른 프로그램이 엑세스하지 못하는 머 그런 것으로만 생각했다능...
그래서 몇가지 실험을 더해보았는데
다운로드 받다 말고 ffmpeg을 중단시켜 보았읍니다.
1 f... 더 보기
와! 그렇군요 ㅋㅋㅋㅋㅋ 신기합니다. ㅋㅋㅋ
다만 적어주신 대로는 역시 작동하지 않았읍니다.
-f ismv옵션의 위치를 앞쪽으로 조금 옮겨주었읍니다.
-bsf 옵션하고 -nostats옵션 사이에 -f ismv를 넣어주니까 작동하는군요 ㅋㅋㅋ
사실 메타박스위치 때문일꺼라고는 전혀 상상하지 못했읍니다.
그냥 파일이 열려있고, 다른프로그램이 사용중이라서
다른 프로그램이 엑세스하지 못하는 머 그런 것으로만 생각했다능...
그래서 몇가지 실험을 더해보았는데
다운로드 받다 말고 ffmpeg을 중단시켜 보았읍니다.
1 ffmpeg이 다운받는 중간에 ctrl+break를 눌러서 ffmpeg을 중단시켰을때
2 커맨드라인에서 tskill ffmpeg을 입력하여 강제로 셧다운 시켰을때
1에서는 중단된 파일이 다운이 된만큼 재생이 되지만
(ffmpeg이 종료되기 전에 비디오 끝에 메타데이터를 적어준듯)
2의 방법으로 중단되었을때는 ffmpeg이 강제로 꺼진 탓인지 메타데이터를 적어주지 못했나 봅니다. 중단된 파일이 전혀 열리지 않았읍니다.
신기방기하군요 +_+ 감사합니다 ㅋㅋㅋㅋㅋ
다만 적어주신 대로는 역시 작동하지 않았읍니다.
-f ismv옵션의 위치를 앞쪽으로 조금 옮겨주었읍니다.
-bsf 옵션하고 -nostats옵션 사이에 -f ismv를 넣어주니까 작동하는군요 ㅋㅋㅋ
사실 메타박스위치 때문일꺼라고는 전혀 상상하지 못했읍니다.
그냥 파일이 열려있고, 다른프로그램이 사용중이라서
다른 프로그램이 엑세스하지 못하는 머 그런 것으로만 생각했다능...
그래서 몇가지 실험을 더해보았는데
다운로드 받다 말고 ffmpeg을 중단시켜 보았읍니다.
1 ffmpeg이 다운받는 중간에 ctrl+break를 눌러서 ffmpeg을 중단시켰을때
2 커맨드라인에서 tskill ffmpeg을 입력하여 강제로 셧다운 시켰을때
1에서는 중단된 파일이 다운이 된만큼 재생이 되지만
(ffmpeg이 종료되기 전에 비디오 끝에 메타데이터를 적어준듯)
2의 방법으로 중단되었을때는 ffmpeg이 강제로 꺼진 탓인지 메타데이터를 적어주지 못했나 봅니다. 중단된 파일이 전혀 열리지 않았읍니다.
신기방기하군요 +_+ 감사합니다 ㅋㅋㅋㅋㅋ
목록 |
|