ฉันใช้ ffmpeg กับ Android ฉันต้องการเบิร์นไฟล์ SRT (คำบรรยาย) ลงใน MP4 ของฉัน รหัสของฉันคือ:
ffmpeg -i /sdcard/AddSrtToVideoTemp/video.mp4 -i /sdcard/AddSrtToVideoTemp/video.srt -c:s mov_text -c:v copy -c:a copy /sdcard/AddSrtToVideoTemp/new.mp4
โค้ดคอมไพล์สำเร็จ แต่คำบรรยายจะไม่ถูกเพิ่มใน new.mp4
เอาต์พุตคอนโซลของฉันคือ:
ffmpeg version N-69972-g6c91afe Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9 (GCC) 20140827 (prerelease)
ffmpeg4android 2.5_24p6_full_no_x264
libavutil 54. 19.100 / 54. 19.100
libavcodec 56. 25.100 / 56. 25.100
libavformat 56. 23.100 / 56. 23.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.100 / 5. 11.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Splitting the commandline.
Reading option '-i' ... matched as input file with argument '/sdcard/AddSrtToVideoTemp/video.mp4'.
Reading option '-i' ... matched as input file with argument '/sdcard/AddSrtToVideoTemp/video.srt'.
Reading option '-c:s' ... matched as option 'c' (codec name) with argument 'mov_text'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '/sdcard/AddSrtToVideoTemp/Video_11611173526.mp4' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Successfully parsed a group of options.
Parsing a group of options: input file /sdcard/AddSrtToVideoTemp/video.mp4.
Successfully parsed a group of options.
Opening an input file: /sdcard/AddSrtToVideoTemp/video.mp4.
Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
ISO: File Type Major Brand: isom
rfps: 29.916667 0.008074
rfps: 29.916667 0.008074
rfps: 30.000000 0.000128
rfps: 30.000000 0.000128
rfps: 60.000000 0.000511
rfps: 60.000000 0.000511
rfps: 120.000000 0.002045
rfps: 120.000000 0.002045
rfps: 240.000000 0.008182
rfps: 29.970030 0.001565
rfps: 29.970030 0.001565
rfps: 59.940060 0.006258
Before avformat_find_stream_info() pos: 5610022 bytes read:35643 seeks:1
All info found
After avformat_find_stream_info() pos: 73704 bytes read:109315 seeks:2 frames:48
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from /sdcard/AddSrtToVideoTemp/video.mp4:
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
creation_time : 2016-10-12 22:23:37
Duration: 00:00:04.01, start: 0.000000, bitrate: 11189 kb/s
Stream #0:0(eng), 1, 1/90000: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 12229 kb/s, SAR 1:1 DAR 16:9, 29.79 fps, 30 tbr, 90k tbn, 180k tbc (default)
Metadata:
rotate : 180
creation_time : 2016-10-12 22:23:37
handler_name : VideoHandle
encoder :
Side data:
displaymatrix: rotation of 180.00 degrees
Stream #0:1(eng), 47, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2016-10-12 22:23:37
handler_name : SoundHandle
Successfully opened the file.
Parsing a group of options: input file /sdcard/AddSrtToVideoTemp/video.srt.
Successfully parsed a group of options.
Opening an input file: /sdcard/AddSrtToVideoTemp/video.srt.
Format srt probed with size=2048 and score=100
Before avformat_find_stream_info() pos: 167 bytes read:167 seeks:0
All info found
After avformat_find_stream_info() pos: 167 bytes read:167 seeks:0 frames:0
Input #1, srt, from '/sdcard/AddSrtToVideoTemp/video.srt':
Duration: N/A, bitrate: N/A
Stream #1:0, 0, 1/1000: Subtitle: subrip
Successfully opened the file.
Parsing a group of options: output file /sdcard/AddSrtToVideoTemp/Video_11611173526.mp4.
Applying option c:s (codec name) with argument mov_text.
Applying option c:v (codec name) with argument copy.
Applying option c:a (codec name) with argument copy.
Successfully parsed a group of options.
Opening an output file: /sdcard/AddSrtToVideoTemp/Video_11611173526.mp4.
Successfully opened the file.
Output #0, mp4, to '/sdcard/AddSrtToVideoTemp/Video_11611173526.mp4':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
encoder : Lavf56.23.100
Stream #0:0(eng), 0, 1/90000: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 12229 kb/s, 29.79 fps, 30 tbr, 90k tbn, 90k tbc (default)
Metadata:
rotate : 180
creation_time : 2016-10-12 22:23:37
handler_name : VideoHandle
encoder :
Side data:
displaymatrix: rotation of 180.00 degrees
Stream #0:1(eng), 0, 1/48000: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 128 kb/s (default)
Metadata:
creation_time : 2016-10-12 22:23:37
handler_name : SoundHandle
Stream #0:2, 0, 1/1000: Subtitle: mov_text ([8][0][0][0] / 0x0008)
Metadata:
encoder : Lavc56.25.100 mov_text
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #1:0 -> #0:2 (subrip (srt) -> mov_text (native))
Press [q] to stop, [?] for help
Delay between the first packet and last packet in the muxing queue is 3242975044 > 10000000: forcing output
Delay between the first packet and last packet in the muxing queue is 11245000 > 10000000: forcing output
No more output streams to write to, finishing.
frame= 108 fps=0.0 q=-1.0 Lsize= 5480kB time=00:54:15.24 bitrate= 13.8kbits/s
video:5413kB audio:63kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.076349%
Input file #0 (/sdcard/AddSrtToVideoTemp/video.mp4):
Input stream #0:0 (video): 108 packets read (5542944 bytes);
Input stream #0:1 (audio): 188 packets read (64171 bytes);
Total: 296 packets (5607115 bytes) demuxed
Input file #1 (/sdcard/AddSrtToVideoTemp/video.srt):
Input stream #1:0 (subtitle): 4 packets read (16 bytes); 4 frames decoded;
Total: 4 packets (16 bytes) demuxed
Output file #0 (/sdcard/AddSrtToVideoTemp/Video_11611173526.mp4):
Output stream #0:0 (video): 108 packets muxed (5542944 bytes);
Output stream #0:1 (audio): 188 packets muxed (64171 bytes);
Output stream #0:2 (subtitle): 4 frames encoded; 4 packets muxed (24 bytes);
Total: 300 packets (5607139 bytes) muxed
4 frames successfully decoded, 0 decoding errors
ffmpeg4android: 0
Output stream #0:2 (subtitle): 4 frames encoded; 4 packets muxed (24 bytes);
คุณแน่ใจหรือไม่ว่าคุณใช้ไฟล์. srt ที่ถูกต้อง? (ซึ่งมีเนื้อหาจริงหรือไม่)