convert mp4 file to y4m keeping audio stream
up vote
0
down vote
favorite
I'm trying to convert an mp4 file into y4m to use with Chrome as a webrtc fake device. (using --use-file-for-fake-video-capture=path/to/file.y4m as described in https://webrtc.org/testing/)
I'm using
ffmpeg -i myfile.mp4 -pix_fmt yuv420p myfile.y4m
and the video conversion does work, but the resulting file has no audio stream.
Here's the full output of ffmpeg:
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'myfile.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
Duration: 00:00:19.73, start: 0.000000, bitrate: 542 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x480, 342 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 59940 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)
Metadata:
handler_name : SoundHandler
File 'myfile.y4m' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to 'myfile.y4m':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
encoder : Lavf58.20.100
Stream #0:0(und): Video: wrapped_avframe, yuv420p, 640x480, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.35.100 wrapped_avframe
frame= 593 fps=0.0 q=-0.0 Lsize= 266854kB time=00:00:19.78 bitrate=110482.9kbits/s speed= 30x
video:310kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 85871.289062%
Looks like I'm missing some option to map the audio stream or some step to add the audio stream back to the y4m file but after trying several switches I'm still not able to get this working.
Does anybody have any suggestions on how to make this work?
audio video ffmpeg video-conversion
add a comment |
up vote
0
down vote
favorite
I'm trying to convert an mp4 file into y4m to use with Chrome as a webrtc fake device. (using --use-file-for-fake-video-capture=path/to/file.y4m as described in https://webrtc.org/testing/)
I'm using
ffmpeg -i myfile.mp4 -pix_fmt yuv420p myfile.y4m
and the video conversion does work, but the resulting file has no audio stream.
Here's the full output of ffmpeg:
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'myfile.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
Duration: 00:00:19.73, start: 0.000000, bitrate: 542 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x480, 342 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 59940 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)
Metadata:
handler_name : SoundHandler
File 'myfile.y4m' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to 'myfile.y4m':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
encoder : Lavf58.20.100
Stream #0:0(und): Video: wrapped_avframe, yuv420p, 640x480, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.35.100 wrapped_avframe
frame= 593 fps=0.0 q=-0.0 Lsize= 266854kB time=00:00:19.78 bitrate=110482.9kbits/s speed= 30x
video:310kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 85871.289062%
Looks like I'm missing some option to map the audio stream or some step to add the audio stream back to the y4m file but after trying several switches I'm still not able to get this working.
Does anybody have any suggestions on how to make this work?
audio video ffmpeg video-conversion
1
You can't. YUV4MPEG is a video-only single-stream container.
– Gyan
Dec 2 at 12:23
I think this is a typical [XY problem])(xyproblem.info) – perhaps you can explain more about the "fake device" and what kind of input it requires.
– slhck
Dec 2 at 15:07
Thanks @Gyan, that's probably why. I didn't know about this. Using other y4m files it "looked like" chrome was producing sound (and I assumed that was contained in the y4m file which is probably wrong).
– user2987504
Dec 3 at 15:51
@slhck I've updated the "fake device" information; it's basically a chrome flag that allows you to use a recording instead of a real webcam for webrtc tests.
– user2987504
Dec 3 at 15:51
You need a separate WAV file for audio. See cs.chromium.org/chromium/src/media/base/…
– Gyan
Dec 3 at 15:54
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm trying to convert an mp4 file into y4m to use with Chrome as a webrtc fake device. (using --use-file-for-fake-video-capture=path/to/file.y4m as described in https://webrtc.org/testing/)
I'm using
ffmpeg -i myfile.mp4 -pix_fmt yuv420p myfile.y4m
and the video conversion does work, but the resulting file has no audio stream.
Here's the full output of ffmpeg:
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'myfile.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
Duration: 00:00:19.73, start: 0.000000, bitrate: 542 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x480, 342 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 59940 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)
Metadata:
handler_name : SoundHandler
File 'myfile.y4m' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to 'myfile.y4m':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
encoder : Lavf58.20.100
Stream #0:0(und): Video: wrapped_avframe, yuv420p, 640x480, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.35.100 wrapped_avframe
frame= 593 fps=0.0 q=-0.0 Lsize= 266854kB time=00:00:19.78 bitrate=110482.9kbits/s speed= 30x
video:310kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 85871.289062%
Looks like I'm missing some option to map the audio stream or some step to add the audio stream back to the y4m file but after trying several switches I'm still not able to get this working.
Does anybody have any suggestions on how to make this work?
audio video ffmpeg video-conversion
I'm trying to convert an mp4 file into y4m to use with Chrome as a webrtc fake device. (using --use-file-for-fake-video-capture=path/to/file.y4m as described in https://webrtc.org/testing/)
I'm using
ffmpeg -i myfile.mp4 -pix_fmt yuv420p myfile.y4m
and the video conversion does work, but the resulting file has no audio stream.
Here's the full output of ffmpeg:
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'myfile.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
Duration: 00:00:19.73, start: 0.000000, bitrate: 542 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x480, 342 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 59940 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)
Metadata:
handler_name : SoundHandler
File 'myfile.y4m' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to 'myfile.y4m':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
encoder : Lavf58.20.100
Stream #0:0(und): Video: wrapped_avframe, yuv420p, 640x480, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.35.100 wrapped_avframe
frame= 593 fps=0.0 q=-0.0 Lsize= 266854kB time=00:00:19.78 bitrate=110482.9kbits/s speed= 30x
video:310kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 85871.289062%
Looks like I'm missing some option to map the audio stream or some step to add the audio stream back to the y4m file but after trying several switches I'm still not able to get this working.
Does anybody have any suggestions on how to make this work?
audio video ffmpeg video-conversion
audio video ffmpeg video-conversion
edited Dec 3 at 15:50
asked Dec 2 at 10:54
user2987504
112
112
1
You can't. YUV4MPEG is a video-only single-stream container.
– Gyan
Dec 2 at 12:23
I think this is a typical [XY problem])(xyproblem.info) – perhaps you can explain more about the "fake device" and what kind of input it requires.
– slhck
Dec 2 at 15:07
Thanks @Gyan, that's probably why. I didn't know about this. Using other y4m files it "looked like" chrome was producing sound (and I assumed that was contained in the y4m file which is probably wrong).
– user2987504
Dec 3 at 15:51
@slhck I've updated the "fake device" information; it's basically a chrome flag that allows you to use a recording instead of a real webcam for webrtc tests.
– user2987504
Dec 3 at 15:51
You need a separate WAV file for audio. See cs.chromium.org/chromium/src/media/base/…
– Gyan
Dec 3 at 15:54
add a comment |
1
You can't. YUV4MPEG is a video-only single-stream container.
– Gyan
Dec 2 at 12:23
I think this is a typical [XY problem])(xyproblem.info) – perhaps you can explain more about the "fake device" and what kind of input it requires.
– slhck
Dec 2 at 15:07
Thanks @Gyan, that's probably why. I didn't know about this. Using other y4m files it "looked like" chrome was producing sound (and I assumed that was contained in the y4m file which is probably wrong).
– user2987504
Dec 3 at 15:51
@slhck I've updated the "fake device" information; it's basically a chrome flag that allows you to use a recording instead of a real webcam for webrtc tests.
– user2987504
Dec 3 at 15:51
You need a separate WAV file for audio. See cs.chromium.org/chromium/src/media/base/…
– Gyan
Dec 3 at 15:54
1
1
You can't. YUV4MPEG is a video-only single-stream container.
– Gyan
Dec 2 at 12:23
You can't. YUV4MPEG is a video-only single-stream container.
– Gyan
Dec 2 at 12:23
I think this is a typical [XY problem])(xyproblem.info) – perhaps you can explain more about the "fake device" and what kind of input it requires.
– slhck
Dec 2 at 15:07
I think this is a typical [XY problem])(xyproblem.info) – perhaps you can explain more about the "fake device" and what kind of input it requires.
– slhck
Dec 2 at 15:07
Thanks @Gyan, that's probably why. I didn't know about this. Using other y4m files it "looked like" chrome was producing sound (and I assumed that was contained in the y4m file which is probably wrong).
– user2987504
Dec 3 at 15:51
Thanks @Gyan, that's probably why. I didn't know about this. Using other y4m files it "looked like" chrome was producing sound (and I assumed that was contained in the y4m file which is probably wrong).
– user2987504
Dec 3 at 15:51
@slhck I've updated the "fake device" information; it's basically a chrome flag that allows you to use a recording instead of a real webcam for webrtc tests.
– user2987504
Dec 3 at 15:51
@slhck I've updated the "fake device" information; it's basically a chrome flag that allows you to use a recording instead of a real webcam for webrtc tests.
– user2987504
Dec 3 at 15:51
You need a separate WAV file for audio. See cs.chromium.org/chromium/src/media/base/…
– Gyan
Dec 3 at 15:54
You need a separate WAV file for audio. See cs.chromium.org/chromium/src/media/base/…
– Gyan
Dec 3 at 15:54
add a comment |
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1380162%2fconvert-mp4-file-to-y4m-keeping-audio-stream%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1380162%2fconvert-mp4-file-to-y4m-keeping-audio-stream%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
You can't. YUV4MPEG is a video-only single-stream container.
– Gyan
Dec 2 at 12:23
I think this is a typical [XY problem])(xyproblem.info) – perhaps you can explain more about the "fake device" and what kind of input it requires.
– slhck
Dec 2 at 15:07
Thanks @Gyan, that's probably why. I didn't know about this. Using other y4m files it "looked like" chrome was producing sound (and I assumed that was contained in the y4m file which is probably wrong).
– user2987504
Dec 3 at 15:51
@slhck I've updated the "fake device" information; it's basically a chrome flag that allows you to use a recording instead of a real webcam for webrtc tests.
– user2987504
Dec 3 at 15:51
You need a separate WAV file for audio. See cs.chromium.org/chromium/src/media/base/…
– Gyan
Dec 3 at 15:54