2012-06-08 4 views
2

HTTP 라이브 스트리밍 서비스를 위해 멀티 캐스트 비디오 스트림을 작은 TS 파일로 분할하여 매우 잘 작동했습니다. 그런 다음 원본의 비트 전송률이 너무 높아서 (1.5mbps) FFmpeg를 사용하여 ts 파일을 작은 비트 전송률 (500kbps)로 트랜스 코딩 할 백그라운드 작업을 설정했습니다. 문제는 500k .m3u8 재생이 (새 파일이로드 될 때마다) 더듬 거리며 1.5mbps만큼 부드럽 지 않다는 것입니다. 이것에 대한HTTP 라이브 스트리밍을위한 스터 터없이 세그먼트 파일을 코드 변환합니다.

ffmpeg -i /home/rca/tst.ts -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -vcodec libx264 -b 500k /home/rca/tst.ts 

어떤 아이디어 :

내 트랜스 코딩 명령 줄

은 다음과 같다? 고맙습니다!

+0

사용중인 x264 사전 설정을 표시 할 수 있습니까? x264 매개 변수를 조정하여 키 프레임 간격 (키 입력)을 짧게 설정하거나 다른 설정이 좋지 않을 수도 있습니다. – vipw

답변

1

해상도 및/또는 프레임을 낮추십시오. 저 대역폭 연결을위한 공간입니다.

은 다행히 동료 ( @enobrev)는 단지 대역폭 드롭 다양한 방법 검토에 어떤 좋은 일을했다 : 그렇지는 FFmpeg의 비트 레이트가 많은 일을하지 않습니다 설정, 원시 인코딩되지 않은 형식에서 시작

가장입니다 (감소 해상도와 프레임 속도는).

ffmpeg -i audio.wav -i "concat:0.avi|1.avi|2.avi" -vcodec libx264 -preset fast -crf 23 -threads 0 -b:v 64000 -r 10 -vf "scale=240:-1" -ab 24k -ar 22050 -map 0 -vbsf h264_mp4toannexb -f segment -segment_time 10 -segment_format mpegts -segment_list autoStream.m3u8 -segment_list_type m3u8 out_lowres_64kbps%d.ts

ffmpeg -i audio.wav -i "concat:0.avi|1.avi|2.avi" -vcodec libx264 -preset fast -crf 23 -threads 0 -b:v 300000 -r 24 -vf "scale=480:-1" -ab 96k -ar 22050 -map 0 -vbsf h264_mp4toannexb -f segment -segment_time 10 -segment_format mpegts -segment_list autoStream.m3u8 -segment_list_type m3u8 out_midres_300kbps%d.ts

ffmpeg -i audio.wav -i "concat:0.avi|1.avi|2.avi" -vcodec libx264 -preset fast -crf 23 -threads 0 -b:v 1200000 -r 24 -vf "scale=640:-1" -ab 192k -ar 44100 -map 0 -vbsf h264_mp4toannexb -f segment -segment_time 10 -segment_format mpegts -segment_list autoStream.m3u8 -segment_list_type m3u8 out_hires_1.2mbps%d.ts

이 당신이 조정할 수 많은 변수가 있지만 내가하고 있어요 위의 비트 레이트 -b에서, v, 프레임 속도 -r, 비디오 해상도 -vf 및 오디오 비트율 -ab (필자 생각) 및 오디오 샘플 속도 -ar