ฉันมีชุดไฟล์ (ค่อนข้างใหญ่) นั่นคือทั้งหมด H264 ใน MPEG TS ภาชนะ เนื่องจากข้อ จำกัด ด้านเวลาฉันจำเป็นต้องบรรจุเนื้อหาใหม่ลงในการสตรีมที่ราบรื่นโดยไม่ต้องแปลงรหัส (การแปลงรหัสจะใช้เวลานานเกินไป)
ฉันได้พยายามหาวิธีการทำเช่นนี้กับ ffmpeg เนื่องจากดูเหมือนว่ามี muxers ที่แตกต่างกัน 2 ตัวที่อาจใช้งานได้ ฉันได้ลองทั้ง muxer 'smoothstreaming' และ 'ismv' muxer แต่ด้วยทั้งคู่ฉันกำลังเจอปัญหา
ffmpeg -i input.mpg -codec copy -f smoothstreaming ss_out
ด้วยสิ่งนี้ฉันได้รับข้อผิดพลาดต่อไปนี้:
ffmpeg version N-79695-g675cfb2 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.1 (Debian 5.3.1-14) 20160409 configuration: libavutil 55. 23.100 / 55. 23.100 libavcodec 57. 38.100 / 57. 38.100 libavformat 57. 35.100 / 57. 35.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 0.101 / 2. 0.101 Input #0, mpegts, from 'input.mpg': Duration: 01:28:41.98, start: 2.040000, bitrate: 2500 kb/s Program 1 Stream #0:0[0x1e1]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 16:11 DAR 20:11], 25 fps, 25 tbr, 90k tbn Stream #0:1[0x1e2](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s [smoothstreaming @ 0x2616340] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. Last message repeated 1 times [smoothstreaming @ 0x2616340] No bit rate set for stream 0 Output #0, smoothstreaming, to 'ss_out': Metadata: encoder : Lavf57.35.100 Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 720x576 [SAR 16:11 DAR 20:11], q=2-31, 25 fps, 25 tbr, 50 tbn Stream #0:1(eng): Audio: mp2 (i[0][0][0] / 0x0069), 48000 Hz, stereo, 192 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
อีกสิ่งที่ฉันลองคือบรรจุด้วย ffmpeg ใน ismv:
ffmpeg -i input.mpg -c copy -movflags isml+frag_keyframe -f ismv ss_out.ismv
มันใช้งานได้ดี แต่ฉันต้องการเครื่องมือ ismindex เพื่อสร้างไฟล์ manifest แต่มันล้มเหลว:
ismindex -n ss_out ss_out.ismv
Unable to read the MFRA atom in ss_out.ismv (mfra size mismatch)
มีบางอย่างที่ฉันทำผิดหรืออาจจะมีบางอย่างผิดปกติกับไฟล์อินพุตของฉัน
ffmpeg -i input.mpg -c:v copy -c:a aac -b:a 192k -movflags frag_keyframe -f ismv ss_out.ismv
หลังจาก ismindex นี้จะทำงานได้ดี!