【问题标题】:(osx) ffmpeg combining mp3 and png to mp4 resulting in mp4 with no audio(osx) ffmpeg 将 mp3 和 png 组合到 mp4 导致 mp4 没有音频
【发布时间】:2016-10-19 19:10:19
【问题描述】:

我正在编写一个 python 脚本,它使用 unix 命令进行一些文件转换/渲染。我正在尝试将一些带有 png 文件的 mp3 文件加入到 mp4 中,这些 mp4 是在它们上面播放 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)

我目前正在使用第三个。但是,他们都没有给我任何音频。作为参考,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

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

【问题讨论】:

  • 你测试了哪些玩家?有些人对 MP4 容器中某些采样率的 MP3 音频有问题。请参阅我对ffmpeg merging mp3, mp4, no sound with copy codec 的回复。
  • 我使用的是 Mac,所以我只是在使用 Quicktime 进行测试。您认为 mp3 的 22.05k 分辨率可能是问题所在吗?
  • 要确认QT是否是罪魁祸首,请与VLC等其他播放器进行测试。

标签: python unix audio video ffmpeg


【解决方案1】:

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 测试。

【讨论】:

  • 当我明天回到我的工作站时,我肯定会尝试不同的播放器和输出格式。不过现在只想回复,并说尝试各种不同的重新编码文件类型并没有导致输出 .mp4 中出现音频
  • 所以这是一个 QuickTime 问题 - 我在 VLC 中进行了测试,它工作正常。我想我已经尝试过使用 AAC 编码,但它不适用于 QuickTime,所以我不确定我还有哪些其他选项。
  • @IanH AAC 为我工作:ffmpeg -f lavfi -i testsrc=d=5,format=yuv420p -f lavfi -i sine=d=5:r=22050 -c:v libx264 -c:a aac output.mp4
  • 使用lavfi的目的是什么?
  • @IanH 它告诉 ffmpeg 以下输入是我仅用于测试目的的过滤器。如果运行相同的命令,QuickTime 会播放吗?
猜你喜欢
  • 2016-02-02
  • 1970-01-01
  • 2015-10-27
  • 2021-12-23
  • 1970-01-01
  • 2017-12-24
  • 2022-01-02
  • 1970-01-01
  • 2014-11-04
相关资源
最近更新 更多