(osx)ffmpeg将mp3和png结合到mp4导致mp4没有音频

时间:2016-06-17 20:47:24

标签: python unix audio video ffmpeg

我正在编写一个使用unix命令进行文件转换/渲染的python脚本。我试图加入一些带有png文件的mp3文件,以获得mp4s,这是mp3播放的图片。但是,我已经尝试了很多不同的编解码器和设置,输出mp4视频似乎从来没有音频。我已经看过任何与ffmpeg有关的问题的答案,并且没有找到解决方案。

我目前正在努力工作的一些命令:

ffmpeg -loop 1 -i slide_shot%d.png -i %s -c:v libx264 -pix_fmt yuv420p 
-s 720x540 -t %.3f -c:a aac -b:a 192k -shortest out%d.mp4" 
% (i, aud, slideTime, i)

ffmpeg -loop 1 -i slide_shot%d.png -i %s -shortest -t %.3f -write_xing 
0 -c:v libx264 -c:a libmp3lame -pix_fmt yuv420p -tune stillimage out%d.mp4" 
% (i, aud, slideTime, i)

ffmpeg -loop 1 -i slide_shot%d.png -i %s -shortest -t %.3f -write_xing 
0 -c:v libx264 -c:a copy -pix_fmt yuv420p -tune stillimage out%d.mp4" 
% (i, aud, slideTime, i)

我目前正在使用第三个。但是,他们都没有给我任何音频。作为参考,我是一个用于命名一致性的循环迭代器,aud是音频文件路径,而slideTime是视频应该采用的秒数。

使用此命令,我目前在终端中获得此输出:

ffmpeg version 3.0.2 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 7.0.2 (clang-700.1.81)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0.2 --enable-shared    
--enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-
tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --
enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --
enable-vda
libavutil      55. 17.103 / 55. 17.103
libavcodec     57. 24.102 / 57. 24.102
libavformat    57. 25.100 / 57. 25.100
libavdevice    57.  0.101 / 57.  0.101
libavfilter     6. 31.100 /  6. 31.100
libavresample   3.  0.  0 /  3.  0.  0
libswscale      4.  0.100 /  4.  0.100
libswresample   2.  0.101 /  2.  0.101
libpostproc    54.  0.100 / 54.  0.100
Input #0, png_pipe, from 'slide_shot16.png':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: png, rgba(pc), 720x540, 25 fps, 25 tbr, 25 tbn, 25     
tbc
[mp3 @ 0x7fe4f1817e00] Skipping 0 bytes of junk at 0.
[mp3 @ 0x7fe4f1817e00] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, from 'pres_projects/Cytokine sepsis 13/data/a24x43.mp3':
Duration: 00:02:04.11, start: 0.000000, bitrate: 23 kb/s
Stream #1:0: Audio: mp3, 22050 Hz, mono, s16p, 24 kb/s
[libx264 @ 0x7fe4f1808000] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x7fe4f1808000] profile High, level 3.0
[libx264 @ 0x7fe4f1808000] 264 - core 148 r2668 fd2c324 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:-3:-3 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=2.00:0.70 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-4 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.20
Output #0, mp4, to 'out16.mp4':
Metadata:
encoder         : Lavf57.25.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 720x540, q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
  encoder         : Lavc57.24.102 libx264
Side data:
  unknown side data type 10 (24 bytes)
Stream #0:1: Audio: mp3 (i[0][0][0] / 0x0069), 22050 Hz, mono, 24 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  132 fps=0.0 q=28.0 size=40kB time=00:00:02.96 bitrate=111.8kbits/
frame=  272 fps=271 q=28.0 size=      61kB time=00:00:08.56 bitrate=  58.2kbits/
frame=  404 fps=269 q=28.0 size=     113kB time=00:00:13.84 bitrate=  66.6kbits/
frame=  537 fps=268 q=28.0 size=     132kB time=00:00:19.16 bitrate=  56.2kbits/
frame=  672 fps=268 q=28.0 size=     184kB time=00:00:24.56 bitrate=  61.3kbits/
frame=  808 fps=268 q=28.0 size=     236kB time=00:00:30.00 bitrate=  64.5kbits/
frame=  943 fps=268 q=28.0 size=     255kB time=00:00:35.40 bitrate=  59.1kbits/
frame= 1087 fps=271 q=28.0 size=     309kB time=00:00:41.16 bitrate=  61.5kbits/
frame= 1219 fps=270 q=28.0 size=     328kB time=00:00:46.44 bitrate=  57.8kbits/
frame= 1355 fps=270 q=28.0 size=     380kB time=00:00:51.88 bitrate=  60.0kbits/frame= 1494 fps=271 q=28.0 size=     400kB time=00:00:57.44 bitrate=  57.1kbits/
frame= 1632 fps=271 q=28.0 size=     453kB time=00:01:02.96 bitrate=  58.9kbits/
frame= 1767 fps=271 q=28.0 size=     472kB time=00:01:08.36 bitrate=  56.6kbits/
frame= 1893 fps=269 q=28.0 size=     523kB time=00:01:13.40 bitrate=  58.4kbits/
frame= 2020 fps=268 q=28.0 size=     541kB time=00:01:18.48 bitrate=  56.5kbits/
frame= 2147 fps=267 q=28.0 size=     592kB time=00:01:23.56 bitrate=  58.1kbits/
frame= 2275 fps=267 q=28.0 size=     611kB time=00:01:28.68 bitrate=  56.4kbits/
frame= 2401 fps=266 q=28.0 size=     661kB time=00:01:33.72 bitrate=  57.8kbits/
frame= 2528 fps=265 q=28.0 size=     680kB time=00:01:38.80 bitrate=  56.4kbits/
frame= 2654 fps=264 q=28.0 size=     731kB time=00:01:43.84 bitrate=  57.6kbits/
frame= 2781 fps=264 q=28.0 size=     749kB time=00:01:48.92 bitrate=  56.3kbits/
frame= 2906 fps=263 q=28.0 size=     799kB time=00:01:53.92 bitrate=  57.5kbits/
frame= 3033 fps=263 q=28.0 size=     818kB time=00:01:59.00 bitrate=  56.3kbits/
frame= 3102 fps=261 q=-1.0 Lsize=     983kB time=00:02:04.08 bitrate=  64.9kbits/s speed=10.5x    
video:505kB audio:364kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 13.169518%
[libx264 @ 0x7fe4f1808000] frame I:13    Avg QP:14.07  size: 33159
[libx264 @ 0x7fe4f1808000] frame P:782   Avg QP: 6.24  size:    36
[libx264 @ 0x7fe4f1808000] frame B:2307  Avg QP: 9.67  size:    25
[libx264 @ 0x7fe4f1808000] consecutive B-frames:  0.8%  0.0%  0.0% 9 9.2%
[libx264 @ 0x7fe4f1808000] mb I  I16..4: 44.1% 26.2% 29.6%
[libx264 @ 0x7fe4f1808000] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:100.0%
[libx264 @ 0x7fe4f1808000] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.1%  0.0%  0.0%  direct: 0.0%  skip:99.9%  L0:40.4% L1:59.6% BI: 0.0%
[libx264 @ 0x7fe4f1808000] 8x8 transform intra:26.1% inter:77.7%
[libx264 @ 0x7fe4f1808000] coded y,uvDC,uvAC intra: 23.8% 9.6% 8.1% inter: 0.0% 0.0% 0.0%
[libx264 @ 0x7fe4f1808000] i16 v,h,dc,p: 60% 33%  7%  0%
[libx264 @ 0x7fe4f1808000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 57% 12% 29%  0%  0%  0%  0%  0%  2%
[libx264 @ 0x7fe4f1808000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 29% 14%  2%  3%  4%  4%  3%  4%
[libx264 @ 0x7fe4f1808000] i8c dc,h,v,p: 74% 21%  5%  0%
[libx264 @ 0x7fe4f1808000] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fe4f1808000] ref P L0: 95.4%  1.1%  3.5%
[libx264 @ 0x7fe4f1808000] ref B L0:  8.5% 90.2%  1.3%
[libx264 @ 0x7fe4f1808000] kb/s:33.31

有没有人遇到过类似的问题,如果有的话,你是怎么解决它的?提前感谢您查看我的问题。

1 个答案:

答案 0 :(得分:2)

QuickTime *不会解码MP4容器中的MP3音频。 Windows Media Player也存在问题,但只会解码某些音频采样率。 VLC和mpv工作正常。一些解决方案:

  • 使用更好的播放器,例如VLC或mpv。
  • 输出为其他容器格式,例如.mov
  • 将音频重新编码为AAC。

更多信息:
ffmpeg merging mp3, mp4, no sound with copy codec

*在OS X 10.11.5上使用QuickTime 10.4进行测试。