비디오를 대시 호환 형식으로 인코딩하는 데 어려움을 겪고 있습니다. .mp4에서 .webm으로 이동합니다.
첫째, OS X 및 ffmpeg 2.5.4를 실행하고 있습니다.
테스트에서 사용중인 인코딩 명령은 다음과 같습니다 (여기에서 얻었 습니다 ).
ffmpeg -i IMG_0113.mp4 -c:v libvpx-vp9 -s 160x90 -b:v 25k -g 1 -tile-columns 4 -frame-parallel 1 -an -f webm -dash 1 video_160x90_25k.webm
ffmpeg -i IMG_0113.mp4 -c:v libvpx-vp9 -s 160x90 -b:v 50k -g 1 -tile-columns 4 -frame-parallel 1 -an -f webm -dash 1 video_160x90_50k.webm
ffmpeg -i IMG_0113.mp4 -vn -acodec libvorbis -ab 128k -dash 1 audio_128k.webm
ffmpeg -f webm_dash_manifest -i video_160x90_25k.webm -f webm_dash_manifest -i video_160x90_50k.webm -f webm_dash_manifest -i audio_128k.webm -c copy -map 0 -map 1 -map 2 -f webm_dash_manifest -adaptation_sets "id=0,streams=0,1 id=1,streams=2" manifest.mpd
둘째, 여기 에서 샘플을 다운로드했기 때문에 문제는 내 서버가 아니며 내 로컬 서버에서 제공 될 때 dash.js 플레이어에서 100 % 작동합니다.
누군가가 저를 올바른 방향으로 가리킬 수 있습니까? 또는 올바른 출력 형식을 가져 오는 데 사용되는 ffmpeg 명령 샘플을 제공하십시오.
고마워, 딘.
좋아, 간다, 이것을 해결했다. 바라건대 이것은 다른 사람의 번거 로움을 덜어 줄 것입니다.
1 단계 : (비디오에서 오디오를 제거하고 단일 오디오 파일 만들기)
ffmpeg -i IMG_0113.mp4 -c:v libvpx -s 160x90 -threads 4 -b:v 25k -tile-columns 4 -frame-parallel 1 -an -keyint_min 30 -g 30 -f webm video_160x90_25k.webm
ffmpeg -i IMG_0113.mp4 -c:v libvpx -s 160x90 -threads 4 -b:v 50k -tile-columns 4 -frame-parallel 1 -an -keyint_min 30 -g 30 -f webm video_160x90_50k.webm
ffmpeg -i IMG_0113.mp4 -vn -acodec libvorbis -ab 128k audio_128k.webm
2 단계 : (사용 sample_muxer를 libwebm 프로젝트에서 여기에 해당 비디오 큐 포인트를 만들려면)
mkvmuxer_sample -i video_160x90_25k.webm -o video_160x90_25k_cued.webm
mkvmuxer_sample -i video_160x90_50k.webm -o video_160x90_50k_cued.webm
3 단계 : (ffmpeg를 사용하여 오디오 큐 포인트 만들기)
ffmpeg -i audio_128k.webm -vn -acodec libvorbis -ab 128k -dash 1 audio_128k_cued.webm
4 단계 : (ffmpeg를 사용하여 webm 대시 매니페스트 파일 .mpd 만들기 )
ffmpeg -f webm_dash_manifest -i video_160x90_25k_cued.webm -f webm_dash_manifest -i video_160x90_50k_cued.webm -f webm_dash_manifest -i audio_128k_cued.webm -c copy -map 0 -map 1 -map 2 -f webm_dash_manifest -adaptation_sets "id=0,streams=0,1 id=1,streams=2" manifest.mpd
ffmpeg (내 버전 이상)는 비디오 파일에 큐 포인트를 올바르게 생성하지 않았습니다 (-dash 1을 추가 할 때). 나는 비디오 파일을 조사하고 webm 파일 형식을 이해함으로써 이것을 결정했습니다 ( 더 알고 싶다면 이것을 읽으십시오 ).
그런 다음 이 페이지 를 읽은 후 sample_muxer를 우연히 발견 하고 ffmpeg가 제대로 작동하지 않는 비디오 큐 포인트를 더 잘 처리 할 수 있는지 확인하기로 결정했습니다. 헉, 헉!
ffmpeg (-dash 1 매개 변수 사용)에서 추출한 오디오 파일의 큐 포인트가 올바르게 생성되고 있음을 알았습니다!
webm 대시 매니페스트의 ffmpeg 생성도 잘 작동합니다!
비디오를 재생하기 위해 shaka-player가 가장 잘 작동하는 것을 발견했지만 cefpython 컨테이너에서 비디오 재생이 필요했고 shaka-player가 cefpython 릴리스에 포함 된 최신 cef (크롬 임베디드 프레임 워크)에서 작동하지 않았기 때문에 사용할 수 없었습니다. .
그런 다음 Google의 유용한 사이트를 기반으로 내 플레이어를 작성했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다